diff --git a/apidocs/stable/allclasses-index.html b/apidocs/stable/allclasses-index.html
new file mode 100644
index 0000000..d236697
--- /dev/null
+++ b/apidocs/stable/allclasses-index.html
@@ -0,0 +1,870 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>All Classes (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Classes (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":2,"i1":2,"i2":2,"i3":2,"i4":2,"i5":2,"i6":2,"i7":2,"i8":2,"i9":2,"i10":4,"i11":2,"i12":2,"i13":1,"i14":2,"i15":8,"i16":1,"i17":1,"i18":1,"i19":1,"i20":1,"i21":2,"i22":1,"i23":1,"i24":1,"i25":2,"i26":2,"i27":2,"i28":2,"i29":2,"i30":2,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":2,"i38":2,"i39":2,"i40":2,"i41":2,"i42":2,"i43":32,"i44":2,"i45":2,"i46":2,"i47":2,"i48":2,"i49":2,"i50":2,"i51":2,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i57":2,"i58":1,"i59":2,"i60":2,"i61":2,"i62":2,"i63":2,"i64":2,"i65":2,"i66":2,"i67":2,"i68":2,"i69":2,"i70":2,"i71":1,"i72":2,"i73":1,"i74":2,"i75":2,"i76":1,"i77":2,"i78":2,"i79":1,"i80":2,"i81":4,"i82":2,"i83":2,"i84":1,"i85":2,"i86":2,"i87":2,"i88":2,"i89":2,"i90":2,"i91":2,"i92":2,"i93":2,"i94":2,"i95":2,"i96":2,"i97":2};
+var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],4:["t3","Enum Summary"],8:["t4","Exception Summary"],32:["t6","Annotation Types Summary"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
+</div>
+<div class="allClassesContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Enum Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Annotation Types Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></td>
+<th class="colLast" scope="row">Deprecated.
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>BasePropertySource</code></a></div>
+</th>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Abstract <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
+ ordinal is provided with the config.</div>
+</th>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to BigDecimal, the supported format is one of the following:
+ 
+     232573527352.76352753
+     -23257352.735276352753
+     -0xFFFFFF (integral numbers only)
+     -0XFFFFAC (integral numbers only)
+     0xFFFFFF (integral numbers only)
+     0XFFFFAC (integral numbers only)
+ </div>
+</th>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to BigInteger, the supported format is one of the following:
+ 
+     0xFFFFFF
+     0XFFFFAC
+     23257352735276352753
+     -0xFFFFFF
+     -0XFFFFAC
+     -23257352735276352753
+ </div>
+</th>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Boolean.</div>
+</th>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">A Buildable property source.</div>
+</th>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The type Builder.</div>
+</th>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">A Buildable property source.</div>
+</th>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The type Builder.</div>
+</th>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Byte, the supported format is one of the following:
+ 
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
+     MIN_VALUE (ignoring case)
+     MIN (ignoring case)
+     MAX_VALUE (ignoring case)
+     MAX (ignoring case)
+ </div>
+</th>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></td>
+<th class="colLast" scope="row">
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
+</th>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Character, the supported format is one of the following:
+ 
+     'a'
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+ </div>
+</th>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Class, hereby using the following classloaders:
+ 
+     The current ThreadContext ClassLoader
+     The Classloader of this class
+     The system Classloader
+ </div>
+</th>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></td>
+<th class="colLast" scope="row">
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
+</th>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">PropertySource that allows adding the program's main arguments as configuration entries.</div>
+</th>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></td>
+<th class="colLast" scope="row">
+<div class="block">Exception class (runtime exception) for configuration issues.</div>
+</th>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></td>
+<th class="colLast" scope="row">Deprecated.
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
+</th>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;<a href="org/apache/tamaya/ConfigQuery.html" title="type parameter in ConfigQuery">T</a>&gt;</td>
+<th class="colLast" scope="row">Deprecated.
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
+</th>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></td>
+<th class="colLast" scope="row">
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
+ a unique key, but adds higher level access functions to
+ a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</th>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A builder for creating new instances of <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</th>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
+</th>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></td>
+<th class="colLast" scope="row">Deprecated.
+<div class="deprecationComment">Use static methods of <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a></div>
+</th>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></td>
+<th class="colLast" scope="row">
+<div class="block">SPI that must be implemented to provide the component that manages all <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
+ instances in a system.</div>
+</th>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></td>
+<th class="colLast" scope="row">
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
+</th>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b> createValue
+ for a <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</th>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">A conversion context containing all the required values for implementing conversion.</div>
+</th>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Builder to create new instances of <a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
+</th>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></td>
+<th class="colLast" scope="row">
+<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</th>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</th>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the Configuration API.</div>
+</th>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Currency, the supported format is one of the following:
+ 
+     CHF (currency code)
+     123 (numeric currency createValue &gt;
+     = 0)
+     DE (ISO 2-digit country)
+     de_DE, de_DE_123 (Locale)
+ </div>
+</th>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the Configuration API.</div>
+</th>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</th>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Default implementation of a simple <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</th>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></td>
+<th class="colLast" scope="row">
+<div class="block">/**
+ Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</th>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the Configuration API.</div>
+</th>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Default metadata provider implementation, which searches for all kind of entries
+ formatted as <code>[(META)key].metaKey=metaValue</code>.</div>
+</th>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></td>
+<th class="colLast" scope="row">
+<div class="block">PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</th>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">This class implements the (default) <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> to load the services required.</div>
+</th>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Double, using the Java number syntax:
+ (-)?</div>
+</th>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Boolean.</div>
+</th>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a>&lt;<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="type parameter in EnumConverter">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to the given enum type.</div>
+</th>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> to access environment variables via Tamaya
+ which are setCurrent via <code>export VARIABLE=createValue</code> on UNIX systems or
+ <code>setCurrent VARIABLE=createValue</code> on Windows systems.</div>
+</th>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></td>
+<th class="colLast" scope="row">
+<div class="block">This is a simple annotation for flaging out functionality or features the Tamaya team is not sure if it is already
+ stabilized, so use it with some caution.</div>
+</th>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to File, using new File(createValue).</div>
+</th>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">A filter configurationContext containing all the required values for implementing filtering.</div>
+</th>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Float, using the Java number syntax:
+ (-)?</div>
+</th>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Instant.</div>
+</th>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Integer, the supported format is one of the following:
+ 
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
+     MIN_VALUE (ignoring case)
+     MIN (ignoring case)
+     MAX_VALUE (ignoring case)
+     MAX (ignoring case)
+ </div>
+</th>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provider which reads all <a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+ classpath.</div>
+</th>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></td>
+<th class="colLast" scope="row">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</th>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to LocalDate.</div>
+</th>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to LocalDateTime.</div>
+</th>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to LocalTime.</div>
+</th>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Long, the supported format is one of the following:
+ 
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
+     MIN_VALUE (ignoring case)
+     MIN (ignoring case)
+     MAX_VALUE (ignoring case)
+     MAX (ignoring case)
+ </div>
+</th>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Main</a></td>
+<th class="colLast" scope="row">
+<div class="block">Small example demonstrating the usage of a self-written <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
+ and <a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>.</div>
+</th>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Main</a></td>
+<th class="colLast" scope="row">
+<div class="block">Minimal example showing how to use Tamaya in the simplest possible way.</div>
+</th>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Simple <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> implementation that just takes a Map and an (optional) priority.</div>
+</th>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">This interface allows to plugin different metadata mechanism.</div>
+</th>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Year.</div>
+</th>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Number.</div>
+</th>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></td>
+<th class="colLast" scope="row">
+<div class="block">Class modelling the result of a request for a property value.</div>
+</th>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to OffsetDateTime.</div>
+</th>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to OffsetTime.</div>
+</th>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Optional.</div>
+</th>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></td>
+<th class="colLast" scope="row">
+<div class="block">A bundle activator that registers the <a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><code>OSGIServiceLoader</code></a>.</div>
+</th>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">ServiceContext implementation based on OSGI Service mechanisms.</div>
+</th>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></td>
+<th class="colLast" scope="row">
+<div class="block">A bundle listener that registers services defined in META-INF/services, when
+ a bundle is starting.</div>
+</th>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Path, using FileSystem.getPath(createValue).</div>
+</th>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Comparator implementation for ordering services loaded based on their increasing priority values.</div>
+</th>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Simple <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, with a fixed ordinal that reads a .properties file from a given URL.</div>
+</th>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="org/apache/tamaya/spi/PropertyConverter.html" title="type parameter in PropertyConverter">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Interface for an property that converts a configured String into something else.</div>
+</th>
+</tr>
+<tr id="i72" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></td>
+<th class="colLast" scope="row">
+<div class="block">Manager that deals with <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances.</div>
+</th>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Interface for filtering the current mapProperties of properties during the evaluation of the chain of PropertySources.</div>
+</th>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Comparator for <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s based on their priority annotations.</div>
+</th>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">PropertyFiltering</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the Configuration API.</div>
+</th>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">This interface models a provider that serves configuration properties.</div>
+</th>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></td>
+<th class="colLast" scope="row">
+<div class="block">Simple support class for helping with change management on property sources.</div>
+</th>
+</tr>
+<tr id="i78" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Comparator for ordering of <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s based on their ordinal method and class name.</div>
+</th>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implement this interfaces to provide a PropertySource provider which
+ is able to register multiple PropertySources.</div>
+</th>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></td>
+<th class="colLast" scope="row">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</th>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Enum of the different supported value types.</div>
+</th>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/ReflectionUtil.html" title="class in org.apache.tamaya.spisupport">ReflectionUtil</a></td>
+<th class="colLast" scope="row">
+<div class="block">Small utility class used by other parts.</div>
+</th>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Predicate filtering using a regex expression operating on the key.</div>
+</th>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">This class models the component that is managing the lifecycle current the
+ services used by the Configuration API.</div>
+</th>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></td>
+<th class="colLast" scope="row">
+<div class="block">This singleton provides access to the services available in the current <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</th>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Short, the supported format is one of the following:
+ 
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
+     MIN_VALUE (ignoring case)
+     MIN (ignoring case)
+     MAX_VALUE (ignoring case)
+     MAX (ignoring case)
+ </div>
+</th>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">A simple PropertySource class.</div>
+</th>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Simple implementation of a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
+ simple property files and XML property files.</div>
+</th>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block"><code>SimplePropertySource</code> builder static inner class.</div>
+</th>
+</tr>
+<tr id="i90" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">A simple PropertySource provider class.</div>
+</th>
+</tr>
+<tr id="i91" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Supplier.</div>
+</th>
+</tr>
+<tr id="i92" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></td>
+<th class="colLast" scope="row">
+<div class="block">This <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
+</th>
+</tr>
+<tr id="i93" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;<a href="org/apache/tamaya/TypeLiteral.html" title="type parameter in TypeLiteral">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Class for instantiation of objects that represent parameterized types
+ with current parameters.</div>
+</th>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to URI, using new URI(createValue).</div>
+</th>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to URL, using new URL(createValue).</div>
+</th>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to Year.</div>
+</th>
+</tr>
+<tr id="i97" class="rowColor">
+<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Converter, converting from String to YearMonth.</div>
+</th>
+</tr>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/allclasses.html b/apidocs/stable/allclasses.html
new file mode 100644
index 0000000..d907b94
--- /dev/null
+++ b/apidocs/stable/allclasses.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>All Classes (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<main role="main" class="indexContainer">
+<ul>
+<li><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></li>
+<li><a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></li>
+<li><a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">ClassloaderAware</span></a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></li>
+<li><a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></li>
+<li><a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="interfaceName">ConfigOperator</span></a></li>
+<li><a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="interfaceName">ConfigQuery</span></a></li>
+<li><a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="interfaceName">Configuration</span></a></li>
+<li><a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">ConfigurationBuilder</span></a></li>
+<li><a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">ConfigurationContext</span></a></li>
+<li><a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></li>
+<li><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">ConfigurationProviderSpi</span></a></li>
+<li><a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya"><span class="interfaceName">ConfigurationSnapshot</span></a></li>
+<li><a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport"><span class="interfaceName">ConfigValueEvaluator</span></a></li>
+<li><a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></li>
+<li><a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></li>
+<li><a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></li>
+<li><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></li>
+<li><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></li>
+<li><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></li>
+<li><a href="org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></li>
+<li><a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></li>
+<li><a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></li>
+<li><a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Main</a></li>
+<li><a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Main</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></li>
+<li><a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport"><span class="interfaceName">MetadataProvider</span></a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></li>
+<li><a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></li>
+<li><a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></li>
+<li><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></li>
+<li><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></li>
+<li><a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">PropertyConverter</span></a></li>
+<li><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></li>
+<li><a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">PropertyFilter</span></a></li>
+<li><a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></li>
+<li><a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">PropertyFiltering</a></li>
+<li><a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">PropertySource</span></a></li>
+<li><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></li>
+<li><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></li>
+<li><a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">PropertySourceProvider</span></a></li>
+<li><a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></li>
+<li><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></li>
+<li><a href="org/apache/tamaya/spisupport/ReflectionUtil.html" title="class in org.apache.tamaya.spisupport">ReflectionUtil</a></li>
+<li><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></li>
+<li><a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="interfaceName">ServiceContext</span></a></li>
+<li><a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></li>
+<li><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></li>
+<li><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></li>
+<li><a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></li>
+<li><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></li>
+</ul>
+</main>
+</body>
+</html>
diff --git a/apidocs/stable/allpackages-index.html b/apidocs/stable/allpackages-index.html
new file mode 100644
index 0000000..90ac4cc
--- /dev/null
+++ b/apidocs/stable/allpackages-index.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>All Packages (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Packages (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
+</div>
+<div class="allPackagesContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packagesSummary">
+<caption><span>Package Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/package-summary.html">org.apache.tamaya.core</a></th>
+<td class="colLast">
+<div class="block">This is the root package of the Apache Tamaya API implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of the converters provided by default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/examples/minimal/package-summary.html">org.apache.tamaya.examples.minimal</a></th>
+<td class="colLast">
+<div class="block">Example to show the simplest ways to use Tamaya with
+ the standard configuration file.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/constant-values.html b/apidocs/stable/constant-values.html
index 18f32b8..581db24 100644
--- a/apidocs/stable/constant-values.html
+++ b/apidocs/stable/constant-values.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Constant Field Values (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Constant Field Values (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Constant Field Values (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Constant Field Values (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
-<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,103 +76,52 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<section role="region">
 <h2 title="Contents">Contents</h2>
 <ul>
 <li><a href="#org.apache">org.apache.*</a></li>
 </ul>
+</section>
 </div>
-<div class="constantValuesContainer"><a name="org.apache">
+<div class="constantValuesContainer"><a id="org.apache">
 <!--   -->
 </a>
+<section role="region">
 <h2 title="org.apache">org.apache.*</h2>
 <ul class="blockList">
 <li class="blockList">
-<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
-<caption><span>org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th scope="col">Constant Field</th>
-<th class="colLast" scope="col">Value</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.tamaya.core.propertysource.EnvironmentPropertySource.DEFAULT_ORDINAL">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></code></td>
-<td class="colLast"><code>300</code></td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
-<caption><span>org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th scope="col">Constant Field</th>
-<th class="colLast" scope="col">Value</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.tamaya.core.propertysource.JavaConfigurationPropertySource.DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</a></code></td>
-<td class="colLast"><code>"META-INF/javaconfiguration.properties"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.tamaya.core.propertysource.JavaConfigurationPropertySource.DEFAULT_XML_PROPERTIES_FILE_NAME">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">DEFAULT_XML_PROPERTIES_FILE_NAME</a></code></td>
-<td class="colLast"><code>"META-INF/javaconfiguration.xml"</code></td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
-<caption><span>org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th scope="col">Constant Field</th>
-<th class="colLast" scope="col">Value</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.tamaya.core.propertysource.SystemPropertySource.DEFAULT_ORDINAL">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></code></td>
-<td class="colLast"><code>1000</code></td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-<ul class="blockList">
-<li class="blockList">
-<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<table class="constantsSummary">
 <caption><span>org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th scope="col">Constant Field</th>
+<th class="colSecond" scope="col">Constant Field</th>
 <th class="colLast" scope="col">Value</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.tamaya.examples.custompropertysource.SimplePropertySource.CONFIG_PROPERTIES_LOCATION">
+<td class="colFirst"><a id="org.apache.tamaya.examples.custompropertysource.SimplePropertySource.CONFIG_PROPERTIES_LOCATION">
 <!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#CONFIG_PROPERTIES_LOCATION">CONFIG_PROPERTIES_LOCATION</a></code></td>
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#CONFIG_PROPERTIES_LOCATION">CONFIG_PROPERTIES_LOCATION</a></code></th>
 <td class="colLast"><code>"META-INF/MyOtherConfigProperties.properties"</code></td>
 </tr>
 </tbody>
@@ -169,36 +130,106 @@
 </ul>
 <ul class="blockList">
 <li class="blockList">
-<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<table class="constantsSummary">
 <caption><span>org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th scope="col">Constant Field</th>
+<th class="colSecond" scope="col">Constant Field</th>
 <th class="colLast" scope="col">Value</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.tamaya.spi.PropertySource.TAMAYA_ORDINAL">
+<td class="colFirst"><a id="org.apache.tamaya.spi.PropertySource.TAMAYA_ORDINAL">
 <!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></td>
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></th>
 <td class="colLast"><code>"tamaya.ordinal"</code></td>
 </tr>
 </tbody>
 </table>
 </li>
 </ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource.DEFAULT_ORDINAL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></code></th>
+<td class="colLast"><code>300</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource.DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</a></code></th>
+<td class="colLast"><code>"META-INF/javaconfiguration.properties"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource.DEFAULT_XML_PROPERTIES_FILE_NAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">DEFAULT_XML_PROPERTIES_FILE_NAME</a></code></th>
+<td class="colLast"><code>"META-INF/javaconfiguration.xml"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.apache.tamaya.spisupport.propertysource.SystemPropertySource.DEFAULT_ORDINAL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></code></th>
+<td class="colLast"><code>1000</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -209,16 +240,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
-<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -231,11 +254,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/deprecated-list.html b/apidocs/stable/deprecated-list.html
index 6ccf2dc..da1a117 100644
--- a/apidocs/stable/deprecated-list.html
+++ b/apidocs/stable/deprecated-list.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Deprecated List (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Deprecated List (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Deprecated List (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Deprecated List (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
-<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,91 +76,166 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Deprecated API" class="title">Deprecated API</h1>
 <h2 title="Contents">Contents</h2>
 <ul>
-<li><a href="#method">Deprecated Methods</a></li>
+<li><a href="#interface">Interfaces</a></li>
+<li><a href="#class">Classes</a></li>
+<li><a href="#method">Methods</a></li>
 </ul>
 </div>
-<div class="contentContainer"><a name="method">
+<div class="contentContainer"><a id="interface">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
-<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<table class="deprecatedSummary">
+<caption><span>Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Method and Description</th>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/tamaya/spi/ConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">org.apache.tamaya.spi.ConfigurationContext.addPropertyConverter(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;)</a>
-<div class="block"><span class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">org.apache.tamaya.ConfigOperator</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/tamaya/spi/ConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">org.apache.tamaya.spi.ConfigurationContext.addPropertySources(PropertySource...)</a>
-<div class="block"><span class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">org.apache.tamaya.ConfigQuery</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colOne"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">org.apache.tamaya.core.internal.DefaultConfigurationContext.addPropertySources(PropertySource...)</a></td>
+</tbody>
+</table>
+</li>
+</ul>
+<a id="class">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary">
+<caption><span>Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
-<tr class="rowColor">
-<td class="colOne"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfigurationContext--">org.apache.tamaya.ConfigurationProvider.getConfigurationContext()</a>
-<div class="block"><span class="deprecationComment">Use <a href="org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a> instead of.</span></div>
-</td>
-</tr>
+<tbody>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationContext--">org.apache.tamaya.spi.ConfigurationProviderSpi.getConfigurationContext()</a>
-<div class="block"><span class="deprecationComment">Will be removed in favour of <a href="org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a>.</span></div>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">org.apache.tamaya.ConfigurationProvider</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use static methods of <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#getConfigurationContext--">org.apache.tamaya.core.internal.DefaultConfigurationProvider.getConfigurationContext()</a></td>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource.BasePropertySource</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>BasePropertySource</code></a></div>
+</td>
 </tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a id="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationContextSettable--">org.apache.tamaya.spi.ConfigurationProviderSpi.isConfigurationContextSettable()</a>
-<div class="block"><span class="deprecationComment">use <a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable--"><code>ConfigurationProviderSpi.isConfigurationSettable()</code></a></span></div>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/Configuration.html#query(org.apache.tamaya.ConfigQuery)">org.apache.tamaya.Configuration.query&#8203;(ConfigQuery&lt;T&gt;)</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="org/apache/tamaya/Configuration.html#adapt(java.util.function.Function)"><code>Configuration.adapt(Function)</code></a></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#isConfigurationContextSettable--">org.apache.tamaya.core.internal.DefaultConfigurationProvider.isConfigurationContextSettable()</a></td>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/Configuration.html#with(org.apache.tamaya.ConfigOperator)">org.apache.tamaya.Configuration.with&#8203;(ConfigOperator)</a></th>
+<td class="colLast">
+<div class="deprecationComment">use <a href="org/apache/tamaya/Configuration.html#map(java.util.function.UnaryOperator)"><code>Configuration.map(UnaryOperator)</code></a></div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/tamaya/ConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">org.apache.tamaya.ConfigurationProvider.setConfigurationContext(ConfigurationContext)</a>
-<div class="block"><span class="deprecationComment">Use #setConfiguration(Configuration) instead of.</span></div>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration()">org.apache.tamaya.spi.ConfigurationProviderSpi.getConfiguration()</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)"><code>ConfigurationProviderSpi.getConfiguration(ClassLoader)</code></a> instead of.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">org.apache.tamaya.spi.ConfigurationProviderSpi.setConfigurationContext(ConfigurationContext)</a>
-<div class="block"><span class="deprecationComment">use <a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>ConfigurationProviderSpi.setConfiguration(Configuration)</code></a></span></div>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/spi/ConversionContext.html#getConfigurationContext()">org.apache.tamaya.spi.ConversionContext.getConfigurationContext()</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConversionContext.html#getConfiguration()"><code>ConversionContext.getConfiguration()</code></a> and <a href="org/apache/tamaya/Configuration.html#getContext()"><code>Configuration.getContext()</code></a>.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">org.apache.tamaya.core.internal.DefaultConfigurationProvider.setConfigurationContext(ConfigurationContext)</a></td>
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/spi/PropertySource.html#isScannable()">org.apache.tamaya.spi.PropertySource.isScannable()</a></th>
+<td class="colLast">
+<div class="deprecationComment">will be removed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/spi/PropertyValue.html#getMetaEntry(java.lang.String)">org.apache.tamaya.spi.PropertyValue.getMetaEntry&#8203;(String)</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spi/PropertyValue.html#getMeta(java.lang.String)"><code>PropertyValue.getMeta(String)</code></a> instead of.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/spi/PropertyValue.html#getSource()">org.apache.tamaya.spi.PropertyValue.getSource()</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <code>getMeta("source")</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#evaluteRawValue(java.lang.String)">org.apache.tamaya.spisupport.DefaultConfiguration.evaluteRawValue&#8203;(String)</a></th>
+<td class="colLast">
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"><code>ConfigValueEvaluator.evaluateRawValue(String, ConfigurationContext)</code></a>.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -159,16 +246,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
-<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -181,11 +260,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/element-list b/apidocs/stable/element-list
new file mode 100644
index 0000000..146c1eb
--- /dev/null
+++ b/apidocs/stable/element-list
@@ -0,0 +1,10 @@
+org.apache.tamaya
+org.apache.tamaya.core
+org.apache.tamaya.core.internal
+org.apache.tamaya.core.internal.converters
+org.apache.tamaya.core.propertysource
+org.apache.tamaya.examples.custompropertysource
+org.apache.tamaya.examples.minimal
+org.apache.tamaya.spi
+org.apache.tamaya.spisupport
+org.apache.tamaya.spisupport.propertysource
diff --git a/apidocs/stable/help-doc.html b/apidocs/stable/help-doc.html
index 1f3f5ee..ddec480 100644
--- a/apidocs/stable/help-doc.html
+++ b/apidocs/stable/help-doc.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>API Help (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>API Help (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="API Help (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="API Help (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
-<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">How This API Document Is Organized</h1>
 <div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
@@ -76,118 +100,148 @@
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
+<section role="region">
 <h2>Overview</h2>
-<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Package</h2>
-<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
 <ul>
-<li>Interfaces (italic)</li>
+<li>Interfaces</li>
 <li>Classes</li>
 <li>Enums</li>
 <li>Exceptions</li>
 <li>Errors</li>
 <li>Annotation Types</li>
 </ul>
+</section>
 </li>
 <li class="blockList">
-<h2>Class/Interface</h2>
+<section role="region">
+<h2>Class or Interface</h2>
 <p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
 <ul>
-<li>Class inheritance diagram</li>
+<li>Class Inheritance Diagram</li>
 <li>Direct Subclasses</li>
 <li>All Known Subinterfaces</li>
 <li>All Known Implementing Classes</li>
-<li>Class/interface declaration</li>
-<li>Class/interface description</li>
+<li>Class or Interface Declaration</li>
+<li>Class or Interface Description</li>
 </ul>
+<br>
 <ul>
 <li>Nested Class Summary</li>
 <li>Field Summary</li>
+<li>Property Summary</li>
 <li>Constructor Summary</li>
 <li>Method Summary</li>
 </ul>
+<br>
 <ul>
 <li>Field Detail</li>
+<li>Property Detail</li>
 <li>Constructor Detail</li>
 <li>Method Detail</li>
 </ul>
 <p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Annotation Type</h2>
 <p>Each annotation type has its own separate page with the following sections:</p>
 <ul>
-<li>Annotation Type declaration</li>
-<li>Annotation Type description</li>
+<li>Annotation Type Declaration</li>
+<li>Annotation Type Description</li>
 <li>Required Element Summary</li>
 <li>Optional Element Summary</li>
 <li>Element Detail</li>
 </ul>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Enum</h2>
 <p>Each enum has its own separate page with the following sections:</p>
 <ul>
-<li>Enum declaration</li>
-<li>Enum description</li>
+<li>Enum Declaration</li>
+<li>Enum Description</li>
 <li>Enum Constant Summary</li>
 <li>Enum Constant Detail</li>
 </ul>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Use</h2>
-<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Tree (Class Hierarchy)</h2>
-<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
 <ul>
 <li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
-<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
 </ul>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Deprecated API</h2>
 <p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Index</h2>
-<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
+</section>
 </li>
 <li class="blockList">
-<h2>Prev/Next</h2>
-<p>These links take you to the next or previous class, interface, package, or related page.</p>
+<section role="region">
+<h2>All&nbsp;Classes</h2>
+<p>The <a href="allclasses.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</section>
 </li>
 <li class="blockList">
-<h2>Frames/No Frames</h2>
-<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
-</li>
-<li class="blockList">
-<h2>All Classes</h2>
-<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
-</li>
-<li class="blockList">
+<section role="region">
 <h2>Serialized Form</h2>
 <p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2>Constant Field Values</h2>
 <p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Search</h2>
+<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
+</section>
 </li>
 </ul>
-<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<hr>
+<span class="emphasizedPhrase">This help file applies to API documentation generated by the standard doclet.</span></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -198,16 +252,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
-<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -220,11 +266,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/index-all.html b/apidocs/stable/index-all.html
index 760c1d4..7985e53 100644
--- a/apidocs/stable/index-all.html
+++ b/apidocs/stable/index-all.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Index (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Index (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Index (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
-<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,142 +76,204 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
-<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a name="I:A">
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a><a id="I:A">
 <!--   -->
 </a>
 <h2 class="title">A</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addDefaultPropertyConverters--">addDefaultPropertyConverters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addDefaultPropertyConverters--">addDefaultPropertyConverters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#adapt(java.util.function.Function)">adapt(Function&lt;Configuration, T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
-<div class="block">Add all registered (default) property converters to the context built.</div>
+<div class="block">Query a configuration.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addDefaultPropertyFilters--">addDefaultPropertyFilters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addDefaultPropertyFilters--">addDefaultPropertyFilters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener(BiConsumer&lt;Set&lt;String&gt;, PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
 <dd>
-<div class="block">Add all registered (default) property filters to the context built.</div>
+<div class="block">Add a change listener for this properrty source.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addDefaultPropertySources--">addDefaultPropertySources()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener(BiConsumer&lt;Set&lt;String&gt;, PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addDefaultPropertySources--">addDefaultPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
-<dd>
-<div class="block">Add all registered (default) property sources to the context built.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#addMetaEntries-java.util.Map-">addMetaEntries(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
-<dd>
-<div class="block">Adds the context data given.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#addMetaEntry-java.lang.String-java.lang.Object-">addMetaEntry(String, Object)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
-<dd>
-<div class="block">Add an additional context data information.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener(BiConsumer&lt;Set&lt;String&gt;, PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html#addCorePropertyConverters()">addCorePropertyConverters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addCorePropertyConverters()">addCorePropertyConverters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addCorePropertyResources(java.util.List)">addCorePropertyResources(List&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addDefaultPropertyConverters()">addDefaultPropertyConverters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
+<div class="block">Add all auto-discoverable property converters to the context built.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">addPropertyConverters(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addDefaultPropertyConverters()">addDefaultPropertyConverters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">addPropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addDefaultPropertyFilters()">addDefaultPropertyFilters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Add all auto-discoverable property filters to the context built.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addDefaultPropertyFilters()">addDefaultPropertyFilters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">addPropertyConverters(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addDefaultPropertySources()">addDefaultPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Adds all registered (default) property sources to the context built.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addDefaultPropertySources()">addDefaultPropertySources()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#addList()">addList()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Adds an anonymous array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#addList(java.lang.String)">addList(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Sets the given list value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#addObject()">addObject()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Adds an anonymous child createObject to the array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#addObject(java.lang.String)">addObject(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Sets the given object vaöue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">This method can be used for adding <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">addPropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">This method can be used for adding <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">addPropertyFilters(PropertyFilter...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Adds the given <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyFilters-java.util.Collection-">addPropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">addPropertyFilters(PropertyFilter...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">addPropertyFilters(PropertyFilter...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Adds the given PropertyFilter instances, hereby the instances are added
- to the end of the list with highest priority.</div>
+<div class="block">Adds the given <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyFilters-java.util.Collection-">addPropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
-<dd>
-<div class="block">Adds the given PropertyFilter instances, hereby the instances are added
- to the end of the list with highest priority.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources(PropertySource...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources(PropertySource...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertySources-java.util.Collection-">addPropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources(PropertySource...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources(PropertySource...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
-<dd>
-<div class="block">This method can be used for adding <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertySources-java.util.Collection-">addPropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">This method can be used for programmatically adding <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats(Class&lt;? extends PropertyConverter&gt;, String...)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Allows to add information on the supported/tried formats, which can be shown to the user, especially when
+<div class="block">Adds the given sources as property sources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#addPropertySources(org.apache.tamaya.spi.PropertySource...)">addPropertySources(PropertySource...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">This method can be used for adding <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#addPropertyValue(org.apache.tamaya.spi.PropertyValue)">addPropertyValue(PropertyValue)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Adds a createValue to the array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats(java.lang.Class,java.lang.String...)">addSupportedFormats(Class&lt;?&gt;, String...)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dd>
+<div class="block">Allows to addPropertyValue information on the supported/tried formats, which can be shown to the user, especially when
  conversion failed.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats(Class&lt;? extends PropertyConverter&gt;, String...)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#addSupportedFormats(java.lang.Class,java.lang.String...)">addSupportedFormats(Class&lt;?&gt;, String...)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
 <dd>
 <div class="block">Add the formats provided by a <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilter-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">applyFilter(PropertyValue, ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyFiltering.html" title="class in org.apache.tamaya.core.internal">PropertyFiltering</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#addValue(java.lang.String)">addValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
 <dd>
-<div class="block">Filters a single value.</div>
+<div class="block">Adds an anonymous text value to the array.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilters-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">applyFilters(Map&lt;String, PropertyValue&gt;, ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyFiltering.html" title="class in org.apache.tamaya.core.internal">PropertyFiltering</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#addValues(java.lang.String...)">addValues(String...)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Adds text values to the array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyFiltering.html#applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">applyFilter(PropertyValue, ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">PropertyFiltering</a></dt>
+<dd>
+<div class="block">Filters a single createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyFiltering.html#applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">applyFilters(List&lt;PropertyValue&gt;, ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">PropertyFiltering</a></dt>
+<dd>
+<div class="block">Filters a single createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyFiltering.html#applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">applyFilters(Map&lt;String, PropertyValue&gt;, ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">PropertyFiltering</a></dt>
 <dd>
 <div class="block">Filters all properties.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#ARRAY">ARRAY</a></span> - org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></dt>
+<dd>
+<div class="block">A multi valued property value, which contains unnamed child properties.</div>
+</dd>
 </dl>
-<a name="I:B">
+<a id="I:B">
 <!--   -->
 </a>
 <h2 class="title">B</h2>
 <dl>
 <dt><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">BasePropertySource</span></a> - Class in <a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></dt>
 <dd>
-<div class="block">Abstract <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows to set a default ordinal that will be used, if no
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>BasePropertySource</code></a></div>
+</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BasePropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">Abstract <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
  ordinal is provided with the config.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource-java.lang.String-">BasePropertySource(String)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#%3Cinit%3E()">BasePropertySource()</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
 <dd>
-<div class="block">Constructor.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Constructor, using a default ordinal of 0.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource-int-">BasePropertySource(int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
-<dd>
-<div class="block">Constructor.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource-java.lang.String-int-">BasePropertySource(String, int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
-<dd>
-<div class="block">Constructor.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource--">BasePropertySource()</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#%3Cinit%3E()">BasePropertySource()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
 <dd>
 <div class="block">Constructor, using a default ordinal of 0.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#%3Cinit%3E(int)">BasePropertySource(int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#%3Cinit%3E(int)">BasePropertySource(int)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#%3Cinit%3E(java.lang.String)">BasePropertySource(String)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#%3Cinit%3E(java.lang.String)">BasePropertySource(String)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#%3Cinit%3E(java.lang.String,int)">BasePropertySource(String, int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#%3Cinit%3E(java.lang.String,int)">BasePropertySource(String, int)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigDecimalConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to BigDecimal, the supported format is one of the following:
@@ -212,7 +286,7 @@
      0XFFFFAC (integral numbers only)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#BigDecimalConverter--">BigDecimalConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#%3Cinit%3E()">BigDecimalConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigIntegerConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
@@ -226,91 +300,141 @@
      -23257352735276352753
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#BigIntegerConverter--">BigIntegerConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#%3Cinit%3E()">BigIntegerConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BooleanConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Boolean.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#BooleanConverter--">BooleanConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#%3Cinit%3E()">BooleanConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#build--">build()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html#build()">build()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#build()">build()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
+<div class="block">Builds a new <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the data in this builder.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#build--">build()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
-<dd>
-<div class="block">Builds a new <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> based on the data in this builder.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#build--">build()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#build()">build()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
 <dd>
 <div class="block">Builds a new context instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#build--">build()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#build()">build()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Creates a new immutable <a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a>.</div>
+<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.TypeLiteral-">Builder(TypeLiteral&lt;?&gt;)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#build()">build()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
 <dd>
-<div class="block">Creates a new Builder instance.</div>
+<div class="block">Build buildable property source.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder(String, TypeLiteral&lt;?&gt;)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html#build()">build()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></dt>
 <dd>
-<div class="block">Creates a new Builder instance.</div>
+<div class="block">Build buildable property source.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.Configuration-org.apache.tamaya.spi.ConfigurationContext-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder(Configuration, ConfigurationContext, String, TypeLiteral&lt;?&gt;)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#build()">build()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
 <dd>
-<div class="block">Creates a new Builder instance.</div>
+<div class="block">Returns a <code>SimplePropertySource</code> built from the parameters previously setCurrent.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#builder-java.lang.String-java.lang.String-">builder(String, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
 <dd>
-<div class="block">Creates a new builder instance.</div>
+<div class="block">A Buildable property source.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#builder-java.lang.String-java.lang.String-java.lang.String-">builder(String, String, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
-<dd>
-<div class="block">Creates a new builder instance.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#bundleChanged-org.osgi.framework.BundleEvent-">bundleChanged(BundleEvent)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#%3Cinit%3E()">BuildablePropertySource()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySource.Builder</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">The type Builder.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySourceProvider</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">A Buildable property source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html#%3Cinit%3E()">BuildablePropertySourceProvider()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySourceProvider.Builder</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">The type Builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#builder()">builder()</a></span> - Static method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>
+<div class="block">Builder builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html#builder()">builder()</a></span> - Static method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dt>
+<dd>
+<div class="block">Builder builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#%3Cinit%3E(java.lang.String,org.apache.tamaya.TypeLiteral)">Builder(String, TypeLiteral&lt;?&gt;)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dd>
+<div class="block">Creates a new Builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.String,org.apache.tamaya.TypeLiteral)">Builder(Configuration, String, TypeLiteral&lt;?&gt;)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dd>
+<div class="block">Creates a new Builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#%3Cinit%3E(org.apache.tamaya.TypeLiteral)">Builder(TypeLiteral&lt;?&gt;)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dd>
+<div class="block">Creates a new Builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#built">built</a></span> - Variable in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Flag if the config has already been built.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#bundleChanged(org.osgi.framework.BundleEvent)">bundleChanged(BundleEvent)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#but()">but()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">But builder.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ByteConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Byte, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
      MAX (ignoring case)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#ByteConverter--">ByteConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#%3Cinit%3E()">ByteConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a name="I:C">
+<a id="I:C">
 <!--   -->
 </a>
 <h2 class="title">C</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#cancelSchedule()">cancelSchedule()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi"><span class="typeNameLink">ChangeSupport</span></a> - Enum in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
+<dd>
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CharConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Character, the supported format is one of the following:
  
      'a'
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#CharConverter--">CharConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#%3Cinit%3E()">CharConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#checkImmutable()">checkImmutable()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#checkPriorityAnnotation(java.lang.ClassLoader)">checkPriorityAnnotation(ClassLoader)</a></span> - Static method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Checks if the <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation class is on the classpath.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ClassConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Class, hereby using the following classloaders:
@@ -320,33 +444,34 @@
      The system Classloader
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#ClassConverter--">ClassConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#%3Cinit%3E()">ClassConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">CLIPropertySource</span></a> - Class in <a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></dt>
+<dt><a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ClassloaderAware</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
-<div class="block">PropertySource that allows to add the programs main arguments as configuration entries.</div>
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html#CLIPropertySource--">CLIPropertySource()</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">CLIPropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">PropertySource that allows adding the program's main arguments as configuration entries.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#%3Cinit%3E()">CLIPropertySource()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html#CLIPropertySource-java.lang.String...-">CLIPropertySource(String...)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#%3Cinit%3E(int,java.lang.String...)">CLIPropertySource(int, String...)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance, allows optionally to pass the main arguments.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html#CLIPropertySource-int-java.lang.String...-">CLIPropertySource(int, String...)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#%3Cinit%3E(java.lang.String...)">CLIPropertySource(String...)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance, allows optionally to pass the main arguments.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html#collect-org.apache.tamaya.spi.PropertyValue-java.lang.String-org.apache.tamaya.spi.PropertySource-">collect(PropertyValue, String, PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi">PropertyValueCombinationPolicy</a></dt>
-<dd>
-<div class="block">Method that is called for each value evaluated by a PropertySource for the given key.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html#compare-java.lang.Object-java.lang.Object-">compare(Object, Object)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal">PriorityServiceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html#compare(java.lang.Object,java.lang.Object)">compare(Object, Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html#compare-org.apache.tamaya.spi.PropertyFilter-org.apache.tamaya.spi.PropertyFilter-">compare(PropertyFilter, PropertyFilter)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal">PropertyFilterComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html#compare(org.apache.tamaya.spi.PropertyFilter,org.apache.tamaya.spi.PropertyFilter)">compare(PropertyFilter, PropertyFilter)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertySourceComparator.html#compare-org.apache.tamaya.spi.PropertySource-org.apache.tamaya.spi.PropertySource-">compare(PropertySource, PropertySource)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal">PropertySourceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html#compare(org.apache.tamaya.spi.PropertySource,org.apache.tamaya.spi.PropertySource)">compare(PropertySource, PropertySource)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#CONFIG_PROPERTIES_LOCATION">CONFIG_PROPERTIES_LOCATION</a></span> - Static variable in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
 <dd>&nbsp;</dd>
@@ -354,55 +479,65 @@
 <dd>
 <div class="block">Exception class (runtime exception) for configuration issues.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigException.html#ConfigException-java.lang.String-">ConfigException(String)</a></span> - Constructor for exception org.apache.tamaya.<a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigException.html#%3Cinit%3E(java.lang.String)">ConfigException(String)</a></span> - Constructor for exception org.apache.tamaya.<a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></dt>
 <dd>
 <div class="block">Creates a new configuration exception.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigException.html#ConfigException-java.lang.String-java.lang.Throwable-">ConfigException(String, Throwable)</a></span> - Constructor for exception org.apache.tamaya.<a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ConfigException(String, Throwable)</a></span> - Constructor for exception org.apache.tamaya.<a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></dt>
 <dd>
 <div class="block">Creates a new configuration exception.</div>
 </dd>
 <dt><a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigOperator</span></a> - Interface in <a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></dt>
 <dd>
-<div class="block">Models a function that maps a given <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to another <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
+</div>
 </dd>
 <dt><a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigQuery</span></a>&lt;<a href="org/apache/tamaya/ConfigQuery.html" title="type parameter in ConfigQuery">T</a>&gt; - Interface in <a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></dt>
 <dd>
-<div class="block">Models a function that maps a given <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to something else.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
+</div>
 </dd>
 <dt><a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Configuration</span></a> - Interface in <a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></dt>
 <dd>
-<div class="block">A configuration models a aggregated set current properties, identified by
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
  a unique key, but adds higher level access functions to
  a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
 </dd>
+<dt><a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationBuilder</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
+<dd>
+<div class="block">A builder for creating new instances of <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</dd>
 <dt><a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContext</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
 </dd>
-<dt><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContextBuilder</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
-<dd>
-<div class="block">A builder for creating new or adapting instances of <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</dd>
 <dt><a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigurationProvider</span></a> - Class in <a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></dt>
 <dd>
-<div class="block">Static access to the <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for the very application.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use static methods of <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a></div>
+</div>
 </dd>
 <dt><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationProviderSpi</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">SPI that must be implemented to provide the component that manages all <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
  instances in a system.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal"><span class="typeNameLink">ConfigValueEvaluator</span></a> - Interface in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigurationSnapshot</span></a> - Interface in <a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></dt>
 <dd>
-<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b>value
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport"><span class="typeNameLink">ConfigValueEvaluator</span></a> - Interface in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b> createValue
  for a <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
 </dd>
 <dt><a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext</span></a> - Class in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">A conversion context containing all the required values for implementing conversion.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#ConversionContext-org.apache.tamaya.spi.ConversionContext.Builder-">ConversionContext(ConversionContext.Builder)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#%3Cinit%3E(org.apache.tamaya.spi.ConversionContext.Builder)">ConversionContext(ConversionContext.Builder)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
 <div class="block">Private constructor used from builder.</div>
 </dd>
@@ -410,173 +545,323 @@
 <dd>
 <div class="block">Builder to create new instances of <a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/EnumConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert(String, ConversionContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></dt>
 <dd>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#convertValue-java.lang.String-java.lang.String-org.apache.tamaya.TypeLiteral-">convertValue(String, String, TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/EnumConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert(String, ConversionContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#create-java.lang.Class-">create(Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)">convertValue(String, List&lt;PropertyValue&gt;, TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#create-java.lang.Class-">create(Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#create-java.lang.Class-">create(Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dt><a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfiguration</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
 <dd>
-<div class="block">Factory method to create a type, hereby a new instance is created on each access.</div>
+<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration(ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfiguration.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">CoreConfiguration(ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></dt>
 <dd>
+<div class="block">Creates a new builder instance.</div>
+</dd>
+<dt><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfigurationBuilder</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dd>
+<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html#%3Cinit%3E()">CoreConfigurationBuilder()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Creates a new builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.Configuration)">CoreConfigurationBuilder(Configuration)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Creates a new builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">CoreConfigurationBuilder(ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+</dd>
+<dt><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfigurationProvider</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dd>
+<div class="block">Implementation of the Configuration API.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#%3Cinit%3E()">CoreConfigurationProvider()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#create(java.lang.Class)">create(Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">create(Class&lt;T&gt;, Supplier&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">create(Class&lt;T&gt;, Supplier&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">create(Class&lt;T&gt;, Supplier&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration(ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Creates a new configuration instance based on the given context.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
 <dd>
 <div class="block">Create a <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#createDefaultPropertyConverter-org.apache.tamaya.TypeLiteral-">createDefaultPropertyConverter(TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#createConfigurationBuilder()">createConfigurationBuilder()</a></span> - Static method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
-<div class="block">Creates a dynamic PropertyConverter for the given target type.</div>
+<div class="block">Access a new configuration builder initialized with the current thread's context classloader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)">createDefaultPropertyConverter(TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
+<dd>
+<div class="block">Creates a dynamic <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> for the given target type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#createList()">createList()</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#createList(java.lang.String)">createList(String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Creates a new createValue of type <a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#ARRAY"><code>PropertyValue.ValueType.ARRAY</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#createObject()">createObject()</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#createObject(java.lang.String)">createObject(String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Creates a new createValue of type <a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#MAP"><code>PropertyValue.ValueType.MAP</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#createValue(java.lang.String,java.lang.String)">createValue(String, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Creates a new createValue of type <a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#VALUE"><code>PropertyValue.ValueType.VALUE</code></a>.</div>
 </dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CurrencyConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Currency, the supported format is one of the following:
  
      CHF (currency code)
-     123 (numeric currency value &gt;
+     123 (numeric currency createValue &gt;
      = 0)
      DE (ISO 2-digit country)
      de_DE, de_DE_123 (Locale)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#CurrencyConverter--">CurrencyConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#%3Cinit%3E()">CurrencyConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#current()">current()</a></span> - Static method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access the configuration instance for the current thread's context classloader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#current(java.lang.ClassLoader)">current(ClassLoader)</a></span> - Static method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Accesses the configuration for a given classloader.</div>
+</dd>
 </dl>
-<a name="I:D">
+<a id="I:D">
 <!--   -->
 </a>
 <h2 class="title">D</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#decreasePriority-org.apache.tamaya.spi.PropertySource-">decreasePriority(PropertySource)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#decreasePriority-org.apache.tamaya.spi.PropertySource-">decreasePriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Decreases the priority of the given property source, by moving it towards the start
  of the chain of property sources.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></span> - Static variable in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority(PropertySource)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#deepClone()">deepClone()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#deepClone()">deepClone()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#deepClone()">deepClone()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Default ordinal for <a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><code>EnvironmentPropertySource</code></a></div>
+<div class="block">Creates a deep clone of this intance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></span> - Static variable in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></span> - Static variable in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>
-<div class="block">default ordinal for <a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><code>SystemPropertySource</code></a></div>
+<div class="block">Default ordinal for <a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>EnvironmentPropertySource</code></a></div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html#DEFAULT_OVERRIDING_COLLECTOR">DEFAULT_OVERRIDING_COLLECTOR</a></span> - Static variable in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi">PropertyValueCombinationPolicy</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></span> - Static variable in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
 <dd>
-<div class="block">Default overriding collector, where each existing entry (<code>current</code> is overridden by a subsequent non-null
- entry evaluated by <code>propertySource.get(key)</code>.</div>
+<div class="block">default ordinal used.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</a></span> - Static variable in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</a></span> - Static variable in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
 <dd>
 <div class="block">Default location in the classpath, where Tamaya looks for simple line based configuration by default.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">DEFAULT_XML_PROPERTIES_FILE_NAME</a></span> - Static variable in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">DEFAULT_XML_PROPERTIES_FILE_NAME</a></span> - Static variable in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
 <dd>
 <div class="block">Default location in the classpath, where Tamaya looks for XML based configuration by default.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfiguration</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfiguration</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
 <div class="block">Implementation of the Configuration API.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#DefaultConfiguration-org.apache.tamaya.spi.ConfigurationContext-">DefaultConfiguration(ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">DefaultConfiguration(ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>
 <div class="block">Constructor.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationContext</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationBuilder</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
-<div class="block">Default implementation of a simple ConfigurationContext.</div>
+<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationContextBuilder</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
-<dd>
-<div class="block">Default implementation of <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a>.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#DefaultConfigurationContextBuilder--">DefaultConfigurationContextBuilder()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#%3Cinit%3E()">DefaultConfigurationBuilder()</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Creates a new builder instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#DefaultConfigurationContextBuilder-org.apache.tamaya.spi.ConfigurationContext-">DefaultConfigurationContextBuilder(ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.Configuration)">DefaultConfigurationBuilder(Configuration)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">DefaultConfigurationBuilder(ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Creates a new builder instance.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationProvider</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationContext</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">Default implementation of a simple <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext(ServiceContext, List&lt;PropertyFilter&gt;, List&lt;PropertySource&gt;, Map&lt;TypeLiteral&lt;?&gt;, List&lt;PropertyConverter&lt;?&gt;&gt;&gt;, MetadataProvider)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spisupport.DefaultConfigurationBuilder)">DefaultConfigurationContext(DefaultConfigurationBuilder)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationSnapshot</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">/**
+ Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#%3Cinit%3E(org.apache.tamaya.Configuration)">DefaultConfigurationSnapshot(Configuration)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.Iterable)">DefaultConfigurationSnapshot(Configuration, Iterable&lt;String&gt;)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigValueEvaluator</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
 <div class="block">Implementation of the Configuration API.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#DefaultConfigurationProvider--">DefaultConfigurationProvider()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html#%3Cinit%3E()">DefaultConfigValueEvaluator()</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigValueEvaluator</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultMetaDataProvider</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
-<div class="block">Implementation of the Configuration API.</div>
+<div class="block">Default metadata provider implementation, which searches for all kind of entries
+ formatted as <code>[(META)key].metaKey=metaValue</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#DefaultConfigValueEvaluator--">DefaultConfigValueEvaluator()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal">DefaultConfigValueEvaluator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#%3Cinit%3E()">DefaultMetaDataProvider()</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultServiceContext</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultPropertySourceSnapshot</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#%3Cinit%3E(org.apache.tamaya.spi.PropertySource)">DefaultPropertySourceSnapshot(PropertySource)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#%3Cinit%3E(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">DefaultPropertySourceSnapshot(PropertySource, Iterable&lt;String&gt;)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultServiceContext</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
 <div class="block">This class implements the (default) <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util"><code>ServiceLoader</code></a> to load the services required.</div>
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> to load the services required.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#DefaultServiceContext--">DefaultServiceContext()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#%3Cinit%3E()">DefaultServiceContext()</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DoubleConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Double, using the Java number syntax:
  (-)?</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#DoubleConverter--">DoubleConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#%3Cinit%3E()">DoubleConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DurationConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to Boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html#%3Cinit%3E()">DurationConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a name="I:E">
+<a id="I:E">
 <!--   -->
 </a>
 <h2 class="title">E</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#EMPTY">EMPTY</a></span> - Static variable in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Immutable and reusable, thread-safe implementation of an empty propertySource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationSnapshot.html#EMPTY">EMPTY</a></span> - Static variable in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">An empty snapshot.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#EMPTY">EMPTY</a></span> - Static variable in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dd>
+<div class="block">An empty configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#EMPTY">EMPTY</a></span> - Static variable in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#EMPTY">EMPTY</a></span> - Static variable in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
 <dd>
 <div class="block">A resusable instance of an empty PropertySource.</div>
@@ -585,776 +870,1399 @@
 <dd>
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">EnumConverter</span></a>&lt;<a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="type parameter in EnumConverter">T</a>&gt; - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">EnumConverter</span></a>&lt;<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="type parameter in EnumConverter">T</a>&gt; - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
-<div class="block">Converter, converting from String to tge given enum type.</div>
+<div class="block">Converter, converting from String to the given enum type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/EnumConverter.html#EnumConverter-java.lang.Class-">EnumConverter(Class&lt;T&gt;)</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/EnumConverter.html#%3Cinit%3E(java.lang.Class)">EnumConverter(Class&lt;T&gt;)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">EnvironmentPropertySource</span></a> - Class in <a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">EnvironmentPropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
 <dd>
-<div class="block">This <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> provides all properties which are set
- via
- <code>export myprop=myval</code> on UNIX Systems or
- <code>set myprop=myval</code> on Windows.</div>
+<div class="block"><a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> to access environment variables via Tamaya
+ which are setCurrent via <code>export VARIABLE=createValue</code> on UNIX systems or
+ <code>setCurrent VARIABLE=createValue</code> on Windows systems.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#EnvironmentPropertySource--">EnvironmentPropertySource()</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#%3Cinit%3E()">EnvironmentPropertySource()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#EnvironmentPropertySource-int-">EnvironmentPropertySource(int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#%3Cinit%3E(int)">EnvironmentPropertySource(int)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>
-<div class="block">Creates a new instance using a fixed ordinal value.</div>
+<div class="block">Creates a new instance using a fixed ordinal createValue.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#EnvironmentPropertySource-java.lang.String-int-">EnvironmentPropertySource(String, int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#%3Cinit%3E(java.lang.String)">EnvironmentPropertySource(String)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#EnvironmentPropertySource-java.lang.String-">EnvironmentPropertySource(String)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#%3Cinit%3E(java.lang.String,int)">EnvironmentPropertySource(String, int)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/EnumConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html#evaluateRawValues-org.apache.tamaya.spi.ConfigurationContext-">evaluateRawValues(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal">ConfigValueEvaluator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/EnumConverter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html#evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateAllValues(String, ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></dt>
+<dd>
+<div class="block">Evaluates all values using a <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue(String, ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></dt>
+<dd>
+<div class="block">Evaluates single createValue using a <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue(String, ConfigurationContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></dt>
 <dd>
 <div class="block">Evaluates all property values from a <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#evaluateRawValues-org.apache.tamaya.spi.ConfigurationContext-">evaluateRawValues(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal">DefaultConfigValueEvaluator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html#evaluteRawValue-java.lang.String-org.apache.tamaya.spi.ConfigurationContext-">evaluteRawValue(String, ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal">ConfigValueEvaluator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#evaluteRawValue(java.lang.String)">evaluteRawValue(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>
-<div class="block">Evaluates single value using a <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"><code>ConfigValueEvaluator.evaluateRawValue(String, ConfigurationContext)</code></a>.</div>
+</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#evaluteRawValue-java.lang.String-org.apache.tamaya.spi.ConfigurationContext-">evaluteRawValue(String, ConfigurationContext)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal">DefaultConfigValueEvaluator</a></dt>
-<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Experimental</span></a> - Annotation Type in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">This is a simple annotation for flaging out functionality or features the Tamaya team is not sure if it is already
  stabilized, so use it with some caution.</div>
 </dd>
 </dl>
-<a name="I:F">
+<a id="I:F">
 <!--   -->
 </a>
 <h2 class="title">F</h2>
 <dl>
 <dt><a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FileConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<div class="block">Converter, converting from String to File, using new File(createValue).</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#FileConverter--">FileConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#%3Cinit%3E()">FileConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">FilterContext</span></a> - Class in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
-<div class="block">A filter context containing all the required values for implementing filtering.</div>
+<div class="block">A filter configurationContext containing all the required values for implementing filtering.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">FilterContext(PropertyValue, Map&lt;String, PropertyValue&gt;, ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#%3Cinit%3E(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">FilterContext(List&lt;PropertyValue&gt;, ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>
-<div class="block">Creates a new FilterContext, for filtering of a multi value access
- using <a href="org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="org/apache/tamaya/Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">FilterContext(PropertyValue, ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">FilterContext(PropertyValue, Map&lt;String, PropertyValue&gt;, ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>
-<div class="block">Creates a new FilterContext, for filtering of a single value access
- using <a href="org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<div class="block">Creates a new FilterContext, for filtering of a multi createValue access
+ using <a href="org/apache/tamaya/Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyFilter.html#filterProperty-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.FilterContext-">filterProperty(PropertyValue, FilterContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">FilterContext(PropertyValue, ConfigurationContext)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>
-<div class="block">Maps the current <code>valueToBeFiltered</code> value to a new value.</div>
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="org/apache/tamaya/Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty(PropertyValue, FilterContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></dt>
+<dd>
+<div class="block">Maps the current <code>value</code> to a new value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty(PropertyValue, FilterContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FloatConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Float, using the Java number syntax:
  (-)?</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#FloatConverter--">FloatConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#%3Cinit%3E()">FloatConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#from(java.util.Collection)">from(Collection&lt;PropertyValue&gt;)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Merges multiple values into one single node.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#from(java.util.Collection)">from(Collection&lt;PropertyValue&gt;)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Merges multiple values into one single node.</div>
+</dd>
 </dl>
-<a name="I:G">
+<a id="I:G">
 <!--   -->
 </a>
 <h2 class="title">G</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get-java.lang.String-">get(String)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get(java.lang.Iterable)">get(Iterable&lt;String&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Access a property.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get-java.lang.String-java.lang.Class-">get(String, Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get(java.lang.Iterable,java.lang.Class)">get(Iterable&lt;String&gt;, Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Gets the property keys as type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get(Iterable&lt;String&gt;, TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Get the property keys as type T.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get-java.lang.String-org.apache.tamaya.TypeLiteral-">get(String, TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
-<dd>
-<div class="block">Get the property keys as type T.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#get-java.lang.String-java.lang.Class-">get(String, Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
-<dd>
-<div class="block">Accesses the current String value for the given key and tries to convert it
- using the <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
- <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#get-java.lang.String-org.apache.tamaya.TypeLiteral-">get(String, TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
-<dd>
-<div class="block">Accesses the current String value for the given key and tries to convert it
- using the <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
- <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#get-java.lang.String-">get(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get(java.lang.String)">get(String)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Access a property.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getAnnotatedElement--">getAnnotatedElement()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#get(java.lang.String)">get(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dd>
+<div class="block">Access a property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#get(java.lang.String)">get(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get(java.lang.String,java.lang.Class)">get(String, Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Gets the property keys as type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#get(java.lang.String,java.lang.Class)">get(String, Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#get(java.lang.String,java.lang.Class)">get(String, Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get(String, TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Get the property keys as type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get(String, TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get(String, TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getAllValues()">getAllValues()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dd>
+<div class="block">Get the property createValue under evaluation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getAnnotatedElement()">getAnnotatedElement()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
 <div class="block">Get the annotated element, if conversion is performed using injection mechanisms.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#getBundleContext--">getBundleContext()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#getBundleContext()">getBundleContext()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getConfigEntries--">getConfigEntries()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
 <dd>
-<div class="block">This map contains the following keys:
- 
- the original value <b>before</b> any filters were applied on it.</div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfiguration--">getConfiguration()</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#getChangeSupport()">getChangeSupport()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getClassLoader()">getClassLoader()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ClassloaderAware.html#getClassLoader()">getClassLoader()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></dt>
 <dd>
+<div class="block">Get the currently assigned cassloader instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#getClassLoader()">getClassLoader()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Get the classloader used by this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#getClassLoader()">getClassLoader()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#getClassLoader()">getClassLoader()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#getClassLoader()">getClassLoader()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getConfigEntries()">getConfigEntries()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dd>
+<div class="block">This mapProperties contains the following keys:
+ 
+ the original createValue <b>before</b> any filters were applied on it.
+ all values starting with an <code>_&lt;key&gt;.</code>, for example <code>a.createValue</code>
+ may have a mapProperties setCurrent with <code>a.createValue</code> (oringinal createValue), <code>_a.createValue.origin,
+ _a.createValue.type, etc</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfiguration()">getConfiguration()</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Access the current configuration.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration--">getConfiguration()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration()">getConfiguration()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
 <dd>
-<div class="block">Access the current <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)"><code>ConfigurationProviderSpi.getConfiguration(ClassLoader)</code></a> instead of.</div>
+</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getConfiguration()">getConfiguration()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
 <div class="block">Get the configuration, which is targeted.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfigurationContext--">getConfigurationContext()</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfiguration(java.lang.ClassLoader)">getConfiguration(ClassLoader)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
 <dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">Use <a href="org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a> instead of.</span></div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Access the current configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#getConfiguration(java.lang.ClassLoader)">getConfiguration(ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)">getConfiguration(ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dd>
+<div class="block">Access the current <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfigurationBuilder()">getConfigurationBuilder()</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Create a new <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#getConfigurationBuilder()">getConfigurationBuilder()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationBuilder()">getConfigurationBuilder()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dd>
+<div class="block">Creates a new <a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getConfigurationContext()">getConfigurationContext()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spi/ConversionContext.html#getConfiguration()"><code>ConversionContext.getConfiguration()</code></a> and <a href="org/apache/tamaya/Configuration.html#getContext()"><code>Configuration.getContext()</code></a>.</div>
 </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#getConfigurationContext--">getConfigurationContext()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getConfigurationContext()">getConfigurationContext()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Get the current configurationContext.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationContext--">getConfigurationContext()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">Will be removed in favour of <a href="org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a>.</span></div>
-</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getConfigurationContext--">getConfigurationContext()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#getConfigurationContextBuilder--">getConfigurationContextBuilder()</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
-<dd>
-<div class="block">Create a new <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> instance.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#getConfigurationContextBuilder--">getConfigurationContextBuilder()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationContextBuilder--">getConfigurationContextBuilder()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
-<dd>
-<div class="block">Creates a new <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> instance.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getContext--">getContext()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getContext()">getContext()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Access a configuration's context.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#getContext--">getContext()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getContext()">getContext()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getContext--">getContext()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getContext()">getContext()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#getDefaultClassLoader()">getDefaultClassLoader()</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
 <dd>
-<div class="block">Get the current context.</div>
+<div class="block">Evaluate the default classloader: This return the current thread context classloader, or this
+ class's classloader as fallback.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#getDefaultOrdinal--">getDefaultOrdinal()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
 <dd>
-<div class="block">Returns the  default ordinal used, when no ordinal is set, or the ordinal was not parseable to an int value.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#getDefaultOrdinal--">getDefaultOrdinal()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#getDefaultOrdinal()">getDefaultOrdinal()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#getDefaultOrdinal--">getDefaultOrdinal()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#getDefaultPropertyConverters()">getDefaultPropertyConverters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getDefinedType-java.lang.Class-">getDefinedType(Class&lt;?&gt;)</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getDefinedType(java.lang.Class)">getDefinedType(Class&lt;?&gt;)</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getGenericInterfaceTypeParameters-java.lang.Class-java.lang.Class-">getGenericInterfaceTypeParameters(Class&lt;?&gt;, Class&lt;?&gt;)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#getFrozenAt()">getFrozenAt()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>
+<div class="block">Get the creation timestamp of this instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getGenericInterfaceTypeParameters(java.lang.Class,java.lang.Class)">getGenericInterfaceTypeParameters(Class&lt;?&gt;, Class&lt;?&gt;)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>
 <div class="block">Checks the current implemented generic interfaces and evaluates the given single type parameter.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html#getInstance--">getInstance()</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal">PriorityServiceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getId()">getId()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">Returns the unique id of this frozen configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getIndex(org.apache.tamaya.spi.PropertyValue)">getIndex(PropertyValue)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the index of the given member value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html#getInstance()">getInstance()</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></dt>
 <dd>
 <div class="block">Get the shared instance of the comparator.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html#getInstance--">getInstance()</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal">PropertyFilterComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html#getInstance()">getInstance()</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></dt>
 <dd>
 <div class="block">Get the shared instance of the comparator.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertySourceComparator.html#getInstance--">getInstance()</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal">PropertySourceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html#getInstance()">getInstance()</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></dt>
 <dd>
 <div class="block">Get the shared instance of the comparator.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getKey--">getKey()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getKey()">getKey()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
 <div class="block">Get the key accessed.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getKey--">getKey()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getKey()">getKey()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
 <div class="block">The requested key.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getMetaEntries--">getMetaEntries()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationSnapshot.html#getKeys()">getKeys()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></dt>
 <dd>
-<div class="block">Creates a full configuration map for this key, value pair and all its meta context data.</div>
+<div class="block">The requested keys.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#getMetaEntries--">getMetaEntries()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getKeys()">getKeys()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
 <dd>
-<div class="block">Get the value's context data.</div>
+<div class="block">Access the current present field names/keys.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getMetaEntry-java.lang.String-">getMetaEntry(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getKeys()">getKeys()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
 <dd>
-<div class="block">Access the given key from this value.</div>
+<div class="block">Get the evaluated keys of this frozen coinfiguration.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#getName--">getName()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#getKeys()">getKeys()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#getName--">getName()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getLists()">getLists()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get all array elements of type <a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi"><code>ListValue</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getLists(java.lang.String)">getLists(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the array elements, filtered by the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#getMap(java.util.Properties)">getMap(Properties)</a></span> - Static method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>
+<div class="block">Simple method to convert <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a> into a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getMeta()">getMeta()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dd>
+<div class="block">Evaluate the metadata for the current target key from the given values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getMeta()">getMeta()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Creates a full configuration map for this key, createValue pair and all its getMeta context data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getMeta(java.lang.String)">getMeta(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Access the given key from this createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getMetaData(java.lang.String)">getMetaData(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dd>
+<div class="block">Get the metadata evaluated for this configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getMetaData(java.lang.String)">getMetaData(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#getName--">getName()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#getMetaData(java.lang.String)">getMetaData(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getName--">getName()</a></span> - Method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/MetadataProvider.html#getMetaData(java.lang.String)">getMetaData(String)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></dt>
+<dd>
+<div class="block">Access the current metadata for the given configuration context and key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getMetaEntry(java.lang.String)">getMetaEntry(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="org/apache/tamaya/spi/PropertyValue.html#getMeta(java.lang.String)"><code>PropertyValue.getMeta(String)</code></a> instead of.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#getName()">getName()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getName()">getName()</a></span> - Method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getName--">getName()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getName()">getName()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
 <dd>
 <div class="block">Get the name of the property source.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-java.lang.String-">getOrDefault(String, String)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#getName()">getName()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#getName()">getName()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#getName()">getName()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#getName()">getName()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getObjects(java.lang.String)">getObjects(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the array elements, filtered by the given predicate.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOptional(java.lang.Iterable)">getOptional(Iterable&lt;String&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a String property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOptional(java.lang.Iterable,java.lang.Class)">getOptional(Iterable&lt;String&gt;, Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional(Iterable&lt;String&gt;, TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOptional(java.lang.String)">getOptional(String)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a String property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOptional(java.lang.String,java.lang.Class)">getOptional(String, Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional(String, TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault(java.lang.Iterable,java.lang.Class,T)">getOrDefault(Iterable&lt;String&gt;, Class&lt;T&gt;, T)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Gets the property keys as type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault(java.lang.Iterable,java.lang.String)">getOrDefault(Iterable&lt;String&gt;, String)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Access a property.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-java.lang.Class-T-">getOrDefault(String, Class&lt;T&gt;, T)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault(Iterable&lt;String&gt;, TypeLiteral&lt;T&gt;, T)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Get the property keys as type T.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-T-">getOrDefault(String, TypeLiteral&lt;T&gt;, T)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault(String, Class&lt;T&gt;, T)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Gets the property keys as type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault(String, Class&lt;T&gt;, T)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault(String, Class&lt;T&gt;, T)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault(String, String)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Access a property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault(String, String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault(String, String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault(String, TypeLiteral&lt;T&gt;, T)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Get the property keys as type T.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#getOrDefault-java.lang.String-java.lang.String-">getOrDefault(String, String)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault(String, TypeLiteral&lt;T&gt;, T)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#getOrDefault-java.lang.String-java.lang.Class-T-">getOrDefault(String, Class&lt;T&gt;, T)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault(String, TypeLiteral&lt;T&gt;, T)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-T-">getOrDefault(String, TypeLiteral&lt;T&gt;, T)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertySourceComparator.html#getOrdinal-org.apache.tamaya.spi.PropertySource-">getOrdinal(PropertySource)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal">PropertySourceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#getOrdinal()">getOrdinal()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
 <dd>
-<div class="block">Evaluates an ordinal value from a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, Herey the ordinal of type <code>int</code>
- is evaluated as follows:
- 
-     It evaluates the <code>String</code> value for <a href="org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL"><code>PropertySource.TAMAYA_ORDINAL</code></a> and tries
-     to convert it to an <code>int</code> value, using <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true#parseInt-java.lang.String-" title="class or interface in java.lang"><code>Integer.parseInt(String)</code></a>.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#getOrdinal--">getOrdinal()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getOrdinal--">getOrdinal()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getOrdinal()">getOrdinal()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
 <dd>
 <div class="block">The ordinal value is the default ordering parameter which definines the default order of
  auto-discovered property sources.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/ReflectionUtil.html#getParametrizedType-java.lang.Class-">getParametrizedType(Class&lt;?&gt;)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/ReflectionUtil.html" title="class in org.apache.tamaya.core.internal">ReflectionUtil</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#getOrdinal()">getOrdinal()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#getPriority-java.lang.Object-">getPriority(Object)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#getOrdinal()">getOrdinal()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#getOrdinal()">getOrdinal()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html#getOrdinal(org.apache.tamaya.spi.PropertySource)">getOrdinal(PropertySource)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></dt>
 <dd>
-<div class="block">Checks the given instance for a @Priority annotation.</div>
+<div class="block">Evaluates an ordinal createValue from a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, whereby the ordinal of type <code>int</code>
+ is evaluated as follows:
+ 
+     It evaluates the <code>String</code> createValue for <a href="org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL"><code>PropertySource.TAMAYA_ORDINAL</code></a> and tries
+     to convert it to an <code>int</code> createValue, using <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#parseInt(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.parseInt(String)</code></a>.
+     It tries to find and evaluate a method <code>int getOrdinal()</code>.
+     It tries to find and evaluate a static field <code>int ORDINAL</code>.
+     It tries to find and evaluate a class level <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation.
+     It uses the default priority (<code>0</code>.
+ </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html#getPriority-java.lang.Object-">getPriority(Object)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal">PriorityServiceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html#getOrdinal(org.apache.tamaya.spi.PropertySource,java.lang.String)">getOrdinal(PropertySource, String)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getOrSetValue(java.lang.String,java.util.function.Supplier)">getOrSetValue(String, Supplier&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
 <dd>
-<div class="block">Checks the given instance for a @Priority annotation.</div>
+<div class="block">Get a single child getValue with the given name, creates it if not existing.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html#getPriority-java.lang.Class-">getPriority(Class)</a></span> - Static method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal">PriorityServiceComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/ReflectionUtil.html#getParametrizedType(java.lang.Class)">getParametrizedType(Class&lt;?&gt;)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ReflectionUtil.html" title="class in org.apache.tamaya.spisupport">ReflectionUtil</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getParent()">getParent()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Get the value's parent.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#getPrefix()">getPrefix()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#getPrefix()">getPrefix()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html#getPriority(java.lang.Class)">getPriority(Class)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></dt>
 <dd>
 <div class="block">Checks the given type optionally annotated with a @Priority.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getProperties--">getProperties()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getPriority(java.lang.Object)">getPriority(Object)</a></span> - Static method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Checks the given instance for a @Priority annotation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html#getPriority(java.lang.Object)">getPriority(Object)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></dt>
+<dd>
+<div class="block">Checks the given instance for a @Priority annotation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getProperties()">getProperties()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
 <div class="block">Access all currently known configuration properties as a full <code>Map&lt;String,String&gt;</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getProperties()">getProperties()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dd>
+<div class="block">Access the current properties as Set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>
 <div class="block">Get the current properties, composed by the loaded <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and filtered
  by registered <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getProperties--">getProperties()</a></span> - Method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getProperties--">getProperties()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#getProperties()">getProperties()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getProperty()">getProperty()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>
-<div class="block">Access the current properties as Set.</div>
+<div class="block">Get the property createValue under evaluation.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#getProperty--">getProperty()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
-<dd>
-<div class="block">Get the property value under evaluation.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertyConverter--">getPropertyConverter()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertyConverter--">getPropertyConverter()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Access the current registered property converters.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyConverters--">getPropertyConverters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters(TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#getPropertyConverters--">getPropertyConverters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
-<dd>
-<div class="block">Get a map of all property converters currently registered.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters(TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
-<dd>
-<div class="block">Get the list of all current registered converters for the given target type.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters--">getPropertyConverters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters()">getPropertyConverters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
 <dd>
 <div class="block">
- This method returns the Map of registered PropertyConverters
+ This method returns the Map of registered <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
  per type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters(TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getPropertyConverters()">getPropertyConverters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#getPropertyConverters()">getPropertyConverters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
+<dd>
+<div class="block">Get a mapProperties of all property converters currently registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters(TypeLiteral&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
 <dd>
 <div class="block">
- This method returns the registered PropertyConverters for a given type.</div>
+ This method returns the registered <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyFilters--">getPropertyFilters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters(TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertyFilters--">getPropertyFilters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyFilters--">getPropertyFilters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters(TypeLiteral&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
 <dd>
-<div class="block">Access the current PropertyFilter instances.</div>
+<div class="block">Get the createList of all current registered converters for the given target type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertyFilters--">getPropertyFilters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#getPropertyFilters()">getPropertyFilters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Access the current chain of property filters.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertySource-java.lang.String-">getPropertySource(String)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyFilters()">getPropertyFilters()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dd>
+<div class="block">Access the current <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#getPropertyFilters()">getPropertyFilters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertySource-java.lang.String-">getPropertySource(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getPropertyFilters()">getPropertyFilters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertySource(java.lang.String)">getPropertySource(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
 <dd>
 <div class="block">Access a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertySources--">getPropertySources()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#getPropertySource(java.lang.String)">getPropertySource(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertySources--">getPropertySources()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getPropertySource(java.lang.String)">getPropertySource(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#getPropertySources--">getPropertySources()</a></span> - Method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#getPropertySources()">getPropertySources()</a></span> - Method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertySources--">getPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
-<dd>
-<div class="block">This method returns the current list of registered PropertySources ordered via their ordinal.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertySources--">getPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#getPropertySources()">getPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Access the current chain of property sources.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySourceProvider.html#getPropertySources--">getPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyValueCombinationPolicy--">getPropertyValueCombinationPolicy()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertyValueCombinationPolicy--">getPropertyValueCombinationPolicy()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getPropertySources()">getPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
 <dd>
-<div class="block">Access the <a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a> used to evaluate the final
- property values.</div>
+<div class="block">This method returns the current createList of registered <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s ordered via their ordinal.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getRawType--">getRawType()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySourceProvider.html#getPropertySources()">getPropertySources()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#getPropertySources()">getPropertySources()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getPropertySources()">getPropertySources()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html#getPropertySources()">getPropertySources()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getPropertyValue(int)">getPropertyValue(int)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the n-th element of the children.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getPropertyValue(java.lang.String)">getPropertyValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Get a single child getValue by name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getPropertyValues(java.lang.String)">getPropertyValues(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the text elements, filtered by the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getQualifiedKey()">getQualifiedKey()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Get a qualified name of a value in property format using '.' as separator, e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getRawType()">getRawType()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>
 <div class="block">Returns basic raw Java type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">getResource(String, ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getResource(java.lang.String)">getResource(String)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">getResource(String, ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">getResource(String, ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getResource(java.lang.String)">getResource(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
 <dd>
 <div class="block">Loads a resource from the current runtime context.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#getResourceBundles--">getResourceBundles()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#getResourceBundles()">getResourceBundles()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">getResources(String, ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getResources(java.lang.String)">getResources(String)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">getResources(String, ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">getResources(String, ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getResources(java.lang.String)">getResources(String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
 <dd>
 <div class="block">Loads resources from the current runtime context.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#getService-java.lang.Class-">getService(Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getService-java.lang.Class-">getService(Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getService-java.lang.Class-">getService(Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getService(java.lang.Class)">getService(Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
 <dd>
 <div class="block">Access a service singleton via its type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#getServiceContext--">getServiceContext()</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">getService(Class&lt;T&gt;, Supplier&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">getService(Class&lt;T&gt;, Supplier&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Access a service singleton via its type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">getService(Class&lt;T&gt;, Supplier&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#getServiceContext()">getServiceContext()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dd>
+<div class="block">Access the underlying <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#getServiceContext()">getServiceContext()</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
 <dd>
 <div class="block">Ge <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#getServices-java.lang.Class-">getServices(Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#getServiceContext()">getServiceContext()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#getServiceContext(java.lang.ClassLoader)">getServiceContext(ClassLoader)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
+<dd>
+<div class="block">Ge <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getServices(java.lang.Class)">getServices(Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Access a createList current services, given its type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getServices(java.lang.Class,java.util.function.Supplier)">getServices(Class&lt;T&gt;, Supplier&lt;List&lt;T&gt;&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getServices(java.lang.Class,java.util.function.Supplier)">getServices(Class&lt;T&gt;, Supplier&lt;List&lt;T&gt;&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Access a createList current services, given its type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#getServices(java.lang.Class,java.util.function.Supplier)">getServices(Class&lt;T&gt;, Supplier&lt;List&lt;T&gt;&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
 <dd>
 <div class="block">Loads and registers services.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#getServices-java.lang.Class-">getServices(Class&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getSize()">getSize()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the createValue's number of elements.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getSize()">getSize()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Get the value's number of elements.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getSize()">getSize()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Get the createValue's number of elements.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getSnapshot(java.lang.Iterable)">getSnapshot(Iterable&lt;String&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Create a snapshot, which contains the given keys.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getSnapshot(java.lang.Iterable)">getSnapshot(Iterable&lt;String&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#getServices-java.lang.Class-">getServices(Class&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getSnapshot(java.lang.Iterable)">getSnapshot(Iterable&lt;String&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#getSnapshot(java.lang.String...)">getSnapshot(String...)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
-<div class="block">Access a list current services, given its type.</div>
+<div class="block">Create a snapshot, which contains all known keys.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getSource--">getSource()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getSource()">getSource()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">The source.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <code>getMeta("source")</code>.</div>
+</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getSupportedFormats--">getSupportedFormats()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getSupportedFormats()">getSupportedFormats()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
 <div class="block">Get the supported/tried formats in precedence order.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getTargetType--">getTargetType()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getTargetType()">getTargetType()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
 <div class="block">Get the target type required.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getType--">getType()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationSnapshot.html#getTimestamp()">getTimestamp()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">Get the timestamp, when this snapshot has been taken.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#getTimestamp()">getTimestamp()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>
+<div class="block">Returns the moment in time when this frozen configuration has been created.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getType()">getType()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getTypeParameters-java.lang.reflect.Type-">getTypeParameters(Type)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#getTypeParameters(java.lang.reflect.Type)">getTypeParameters(Type)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>
 <div class="block">Method that checks the class's type for a generic interface implementation type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getValue--">getValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getValue()">getValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
 <dd>
-<div class="block">The value.</div>
+<div class="block">Get the node's createValue.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getValue()">getValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Get the node's createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getValue()">getValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Get the node's createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getValue(int)">getValue(int)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get a String value with the given key, if possible.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getValue(java.lang.String)">getValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Get a String value with the given key, if possible.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#getValue(java.lang.String)">getValue(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#getValues()">getValues()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dd>
+<div class="block">Get the correspnoding underlying property values matching the given key, in order of significance
+ (most significant last).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getValues()">getValues()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Get the fields of this instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#getValues(java.lang.String)">getValues(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#getValueType()">getValueType()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Get the item's current createValue type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#getValueType()">getValueType()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Get the item's current value type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getValueType()">getValueType()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Get the item's current createValue type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#getVersion()">getVersion()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dd>
+<div class="block">Get the current version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#getVersion()">getVersion()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Get the values version, the version is updated with each change written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#getVersion()">getVersion()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#getVersion()">getVersion()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#getVersion()">getVersion()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
 </dl>
-<a name="I:H">
+<a id="I:H">
 <!--   -->
 </a>
 <h2 class="title">H</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ByteConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CharConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ClassConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/EnumConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/DurationConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FileConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/FloatConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#hashCode--">hashCode()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#highestPriority-org.apache.tamaya.spi.PropertySource-">highestPriority(PropertySource)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#highestPriority-org.apache.tamaya.spi.PropertySource-">highestPriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/EnumConverter.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#hashCode()">hashCode()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Increases the priority of the given property source to be maximal, by moving it to
  the tail of the of property source chain.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority(PropertySource)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
 </dl>
-<a name="I:I">
+<a id="I:I">
 <!--   -->
 </a>
 <h2 class="title">I</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#increasePriority-org.apache.tamaya.spi.PropertySource-">increasePriority(PropertySource)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#increasePriority-org.apache.tamaya.spi.PropertySource-">increasePriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#immutable()">immutable()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Sets this instance and also all its direct an indirect children to immutable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ChangeSupport.html#IMMUTABLE">IMMUTABLE</a></span> - org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></dt>
+<dd>
+<div class="block">Configuration properties of this property source cannot change for the lifetime of this <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Increases the priority of the given property source, by moving it towards the end
  of the chain of property sources.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#initConverters--">initConverters()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority(PropertySource)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#incrementVersion()">incrementVersion()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Called to mark a change on this instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#init(java.lang.ClassLoader)">init(ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ClassloaderAware.html#init(java.lang.ClassLoader)">init(ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></dt>
+<dd>
+<div class="block">Initializes this instance with the classloader to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#init(java.lang.ClassLoader)">init(ClassLoader)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#init(java.lang.ClassLoader)">init(ClassLoader)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/MetadataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></dt>
+<dd>
+<div class="block">Initializes the provider with the given context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#initConverters()">initConverters()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
 <dd>
 <div class="block">Registers the default converters provided out of the box.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html#initMainArgs-java.lang.String...-">initMainArgs(String...)</a></span> - Static method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#initMainArgs(java.lang.String...)">initMainArgs(String...)</a></span> - Static method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
 <dd>
 <div class="block">Configure the main arguments, hereby parsing and mapping the main arguments into
- configuration propertiesi as key-value pairs.</div>
+ configuration properties as key-createValue pairs.</div>
 </dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">InstantConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to Instant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/InstantConverter.html#%3Cinit%3E()">InstantConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">IntegerConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Integer, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
      MAX (ignoring case)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#IntegerConverter--">IntegerConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html#%3Cinit%3E()">IntegerConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#isConfigurationContextSettable--">isConfigurationContextSettable()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationContextSettable--">isConfigurationContextSettable()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">use <a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable--"><code>ConfigurationProviderSpi.isConfigurationSettable()</code></a></span></div>
-</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#isConfigurationSettable--">isConfigurationSettable()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#isConfigurationSettable(java.lang.ClassLoader)">isConfigurationSettable(ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable--">isConfigurationSettable()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable(java.lang.ClassLoader)">isConfigurationSettable(ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
 <dd>
 <div class="block">Method that allows to determine if a new <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
  programmatically.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#isEnabled--">isEnabled()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#isDisabled()">isDisabled()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#isInitialized--">isInitialized()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#isDisabled()">isDisabled()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#isScannable--">isScannable()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#isEnabled()">isEnabled()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#isScannable--">isScannable()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#isScannable--">isScannable()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#isScannable--">isScannable()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#isImmutable()">isImmutable()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Determines if this config source can be scanned for its list of properties.</div>
+<div class="block">Checks if the instance is immutable.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#isSinglePropertyScoped--">isSinglePropertyScoped()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#isInitialized()">isInitialized()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#isLeaf()">isLeaf()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Checks if the value is a leaf value (has no values).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#isRoot()">isRoot()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Checks if the value is a root value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#isScannable()">isScannable()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">will be removed.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#isSinglePropertyScoped()">isSinglePropertyScoped()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>
 <div class="block">Method that determines if filtering is done for a single property accessed, or as part of call to
  <code>getProperties()</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#isTargetTypeSupported-org.apache.tamaya.TypeLiteral-">isTargetTypeSupported(TypeLiteral&lt;?&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#isTargetTypeSupported(org.apache.tamaya.TypeLiteral)">isTargetTypeSupported(TypeLiteral&lt;?&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
 <dd>
 <div class="block">Allows to evaluate if a given target type is supported.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#iterator()">iterator()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#iterator()">iterator()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#iterator()">iterator()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>&nbsp;</dd>
 </dl>
-<a name="I:J">
+<a id="I:J">
 <!--   -->
 </a>
 <h2 class="title">J</h2>
 <dl>
-<dt><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">JavaConfigurationPropertySource</span></a> - Class in <a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">JavaConfigurationPropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
 <dd>
-<div class="block">Provider which reads all <a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
- <a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+<div class="block">Provider which reads all <a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
  classpath.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#JavaConfigurationPropertySource--">JavaConfigurationPropertySource()</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#%3Cinit%3E()">JavaConfigurationPropertySource()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a name="I:L">
+<a id="I:L">
 <!--   -->
 </a>
 <h2 class="title">L</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#loadDefaults--">loadDefaults()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ListValue</span></a> - Class in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
+<dd>
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#load(java.util.Map)">load(Map&lt;String, PropertyValue&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#loadDefaults()">loadDefaults()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalDateConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to LocalDate.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html#%3Cinit%3E()">LocalDateConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalDateTimeConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to LocalDateTime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html#%3Cinit%3E()">LocalDateTimeConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalTimeConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to LocalTime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html#%3Cinit%3E()">LocalTimeConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LongConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Long, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
      MAX (ignoring case)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#LongConverter--">LongConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/LongConverter.html#%3Cinit%3E()">LongConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#lowestPriority-org.apache.tamaya.spi.PropertySource-">lowestPriority(PropertySource)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#lowestPriority-org.apache.tamaya.spi.PropertySource-">lowestPriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority(PropertySource)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Decreases the priority of the given property source to be minimal, by moving it to
  the start of the chain of property source chain.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority(PropertySource)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
 </dl>
-<a name="I:M">
+<a id="I:M">
 <!--   -->
 </a>
 <h2 class="title">M</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/Main.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Main</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/minimal/Main.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class org.apache.tamaya.examples.minimal.<a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Main</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Main</span></a> - Class in <a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></dt>
 <dd>
 <div class="block">Small example demonstrating the usage of a self-written <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
  and <a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/Main.html#main-java.lang.String:A-">main(String[])</a></span> - Static method in class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Main</a></dt>
-<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal"><span class="typeNameLink">Main</span></a> - Class in <a href="org/apache/tamaya/examples/minimal/package-summary.html">org.apache.tamaya.examples.minimal</a></dt>
 <dd>
 <div class="block">Minimal example showing how to use Tamaya in the simplest possible way.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/minimal/Main.html#main-java.lang.String:A-">main(String[])</a></span> - Static method in class org.apache.tamaya.examples.minimal.<a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Main</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#map(java.util.function.UnaryOperator)">map(UnaryOperator&lt;Configuration&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Extension point for adjusting configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#MAP">MAP</a></span> - org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></dt>
+<dd>
+<div class="block">A multi valued property value, which contains named child properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#mapProperties(java.util.Map,long)">mapProperties(Map&lt;String, String&gt;, long)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#map-java.util.Map-java.lang.String-">map(Map&lt;String, String&gt;, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#mapProperties(java.util.Map,java.lang.String)">mapProperties(Map&lt;String, String&gt;, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#map-java.util.Map-java.lang.String-java.util.Map-">map(Map&lt;String, String&gt;, String, Map&lt;String, String&gt;)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map)">mapProperties(Map&lt;String, String&gt;, String, Map&lt;String, String&gt;)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#mapKey-java.lang.String-">mapKey(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)">mapProperties(Map&lt;String, String&gt;, String, Map&lt;String, String&gt;, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Changes the entry's key, mapping also corresponding context entries.</div>
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">MapPropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">Simple <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> implementation that just takes a Map and an (optional) priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#%3Cinit%3E(java.lang.String,java.util.Map)">MapPropertySource(String, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#%3Cinit%3E(java.lang.String,java.util.Map,java.lang.String)">MapPropertySource(String, Map&lt;String, String&gt;, String)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority, but applying a custom mapping <code>prefix</code> to the entries provided.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#%3Cinit%3E(java.lang.String,java.util.Properties,java.lang.String)">MapPropertySource(String, Properties, String)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority, but applying a custom mapping <code>rootContext</code> to the entries provided.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#metaDataProvider">metaDataProvider</a></span> - Variable in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport"><span class="typeNameLink">MetadataProvider</span></a> - Interface in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">This interface allows to plugin different metadata mechanism.</div>
+</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">MonthDayConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to Year.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html#%3Cinit%3E()">MonthDayConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#mutable()">mutable()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#mutable()">mutable()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#mutable()">mutable()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Clones this instance and all it's children, marking as mutable createValue.</div>
 </dd>
 </dl>
-<a name="I:N">
+<a id="I:N">
 <!--   -->
 </a>
 <h2 class="title">N</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#newBuilder()">newBuilder()</a></span> - Static method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">NumberConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Number.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#NumberConverter--">NumberConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/NumberConverter.html#%3Cinit%3E()">NumberConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a name="I:O">
+<a id="I:O">
 <!--   -->
 </a>
 <h2 class="title">O</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#of-java.lang.String-java.lang.String-java.lang.String-">of(String, String, String)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ObjectValue</span></a> - Class in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
-<div class="block">Creates a new PropertyValue without any metadata..</div>
+<div class="block">Class modelling the result of a request for a property value.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#of-java.lang.reflect.Type-">of(Type)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#of(java.lang.reflect.Type)">of(Type)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>
 <div class="block">Creates a new TypeLiteral based on a given type.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigOperator.html#operate-org.apache.tamaya.Configuration-">operate(Configuration)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#of(org.apache.tamaya.spi.PropertySource)">of(PropertySource)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
 <dd>
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#of(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">of(PropertySource, Iterable&lt;String&gt;)</a></span> - Static method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OffsetDateTimeConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to OffsetDateTime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html#%3Cinit%3E()">OffsetDateTimeConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OffsetTimeConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to OffsetTime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html#%3Cinit%3E()">OffsetTimeConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigOperator.html#operate(org.apache.tamaya.Configuration)">operate(Configuration)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Creates a new <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultServiceContext.html#ordinal--">ordinal()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></dt>
+<dt><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OptionalConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to Optional.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html#%3Cinit%3E()">OptionalConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#ordinal--">ordinal()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#ordinal()">ordinal()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#ordinal--">ordinal()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
-<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#ordinal()">ordinal()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Get the ordinal of the ServiceContext.</div>
+</dd>
 <dt><a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a> - package org.apache.tamaya</dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">This package contains the Apache Tamaya API.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/package-summary.html">org.apache.tamaya.core</a> - package org.apache.tamaya.core</dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">This is the root package of the Apache Tamaya API implementation.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> - package org.apache.tamaya.core.internal</dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a> - package org.apache.tamaya.core.internal.converters</dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Contains implementations of the converters provided by default.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> - package org.apache.tamaya.core.propertysource</dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> - package org.apache.tamaya.examples.custompropertysource</dt>
@@ -1365,177 +2273,303 @@
  the standard configuration file.</div>
 </dd>
 <dt><a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> - package org.apache.tamaya.spi</dt>
+<dd>
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a> - package org.apache.tamaya.spisupport</dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> - package org.apache.tamaya.spisupport.propertysource</dt>
+<dd>
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core"><span class="typeNameLink">OSGIActivator</span></a> - Class in <a href="org/apache/tamaya/core/package-summary.html">org.apache.tamaya.core</a></dt>
 <dd>
 <div class="block">A bundle activator that registers the <a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><code>OSGIServiceLoader</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/OSGIActivator.html#OSGIActivator--">OSGIActivator()</a></span> - Constructor for class org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/OSGIActivator.html#%3Cinit%3E()">OSGIActivator()</a></span> - Constructor for class org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceContext</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
 <dd>
 <div class="block">ServiceContext implementation based on OSGI Service mechanisms.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#OSGIServiceContext-org.apache.tamaya.core.internal.OSGIServiceLoader-">OSGIServiceContext(OSGIServiceLoader)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#%3Cinit%3E(org.apache.tamaya.core.internal.OSGIServiceLoader)">OSGIServiceContext(OSGIServiceLoader)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceLoader</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
 <dd>
-<div class="block">An bundle listener that registers services defined in META-INF/services, when a bundle is starting.</div>
+<div class="block">A bundle listener that registers services defined in META-INF/services, when
+ a bundle is starting.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#OSGIServiceLoader-org.osgi.framework.BundleContext-">OSGIServiceLoader(BundleContext)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html#%3Cinit%3E(org.osgi.framework.BundleContext)">OSGIServiceLoader(BundleContext)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a name="I:P">
+<a id="I:P">
 <!--   -->
 </a>
 <h2 class="title">P</h2>
 <dl>
 <dt><a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">PathConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<div class="block">Converter, converting from String to Path, using FileSystem.getPath(createValue).</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#PathConverter--">PathConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/PathConverter.html#%3Cinit%3E()">PathConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PriorityServiceComparator</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#PRIORITY_ANNOTATION_AVAILABLE">PRIORITY_ANNOTATION_AVAILABLE</a></span> - Static variable in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
 <dd>
-<div class="block">Comparator implementation for odering services loaded based on their increasing priority values.</div>
+<div class="block">True if the <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation class is available on the classpath.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PriorityServiceComparator</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">Comparator implementation for ordering services loaded based on their increasing priority values.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">PropertiesResourcePropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block">Simple <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, with a fixed ordinal that reads a .properties file from a given URL.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#%3Cinit%3E(java.lang.String)">PropertiesResourcePropertySource(String)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#%3Cinit%3E(java.lang.String,java.lang.ClassLoader)">PropertiesResourcePropertySource(String, ClassLoader)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#%3Cinit%3E(java.net.URL)">PropertiesResourcePropertySource(URL)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#%3Cinit%3E(java.net.URL,java.lang.String)">PropertiesResourcePropertySource(URL, String)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new instance.</div>
 </dd>
 <dt><a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyConverter</span></a>&lt;<a href="org/apache/tamaya/spi/PropertyConverter.html" title="type parameter in PropertyConverter">T</a>&gt; - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">Interface for an property that converts a configured String into something else.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyConverterManager</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyConverterManager</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
 <div class="block">Manager that deals with <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#PropertyConverterManager--">PropertyConverterManager()</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext)">PropertyConverterManager(ServiceContext)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
 <dd>
-<div class="block">Constructor.</div>
+<div class="block">Creates a new instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#PropertyConverterManager-boolean-">PropertyConverterManager(boolean)</a></span> - Constructor for class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,boolean)">PropertyConverterManager(ServiceContext, boolean)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
+<dd>
+<div class="block">Creates a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#propertyConverters">propertyConverters</a></span> - Variable in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyFilter</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
-<div class="block">Interface for filtering the current map of properties during the evaluation of the chain of PropertySources.</div>
+<div class="block">Interface for filtering the current mapProperties of properties during the evaluation of the chain of PropertySources.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyFilterComparator</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyFilterComparator</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
-<div class="block">Comparator for PropertyFilters based on their priority annotations.</div>
+<div class="block">Comparator for <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s based on their priority annotations.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/PropertyFiltering.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyFiltering</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyFiltering</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
 <div class="block">Implementation of the Configuration API.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#propertyFilters">propertyFilters</a></span> - Variable in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySource</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">This interface models a provider that serves configuration properties.</div>
 </dd>
-<dt><a href="org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertySourceComparator</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertySourceChangeSupport</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
-<div class="block">Comparator for ordering of PropertySources based on their ordinal method and class name.</div>
+<div class="block">Simple support class for helping with change management on property sources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#%3Cinit%3E(org.apache.tamaya.spi.ChangeSupport,org.apache.tamaya.spi.PropertySource)">PropertySourceChangeSupport(ChangeSupport, PropertySource)</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>
+<div class="block">Create a new property change support instance.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertySourceComparator</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
+<dd>
+<div class="block">Comparator for ordering of <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s based on their ordinal method and class name.</div>
 </dd>
 <dt><a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySourceProvider</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">Implement this interfaces to provide a PropertySource provider which
  is able to register multiple PropertySources.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#propertySources">propertySources</a></span> - Variable in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue</span></a> - Class in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
-<div class="block">Class modelling the result of a request for a property value.</div>
+<div class="block">Class modelling the result of a request for a property createValue.</div>
 </dd>
-<dt><a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValueBuilder</span></a> - Class in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#%3Cinit%3E(java.lang.String)">PropertyValue(String)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Builder to create a <a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a> instance.</div>
+<div class="block">Creates a new instance</div>
 </dd>
-<dt><a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValueCombinationPolicy</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#%3Cinit%3E(java.lang.String,java.lang.String)">PropertyValue(String, String)</a></span> - Constructor for class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Policy that determines how the final value of a configuration entry is evaluated.</div>
+<div class="block">Creates a new instance</div>
+</dd>
+<dt><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue.ValueType</span></a> - Enum in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
+<dd>
+<div class="block">Enum of the different supported value types.</div>
 </dd>
 </dl>
-<a name="I:Q">
+<a id="I:Q">
 <!--   -->
 </a>
 <h2 class="title">Q</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigQuery.html#query-org.apache.tamaya.Configuration-">query(Configuration)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#query(org.apache.tamaya.ConfigQuery)">query(ConfigQuery&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
-<div class="block">Creates a result based on the given Configuration.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="org/apache/tamaya/Configuration.html#adapt(java.util.function.Function)"><code>Configuration.adapt(Function)</code></a></div>
+</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#query-org.apache.tamaya.ConfigQuery-">query(ConfigQuery&lt;T&gt;)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
-<dd>
-<div class="block">Query a configuration.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#query-org.apache.tamaya.ConfigQuery-">query(ConfigQuery&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#query(org.apache.tamaya.ConfigQuery)">query(ConfigQuery&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigQuery.html#query(org.apache.tamaya.Configuration)">query(Configuration)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a result based on the given <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</dd>
 </dl>
-<a name="I:R">
+<a id="I:R">
 <!--   -->
 </a>
 <h2 class="title">R</h2>
 <dl>
-<dt><a href="org/apache/tamaya/core/internal/ReflectionUtil.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">ReflectionUtil</span></a> - Class in <a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/ReflectionUtil.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">ReflectionUtil</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
 <div class="block">Small utility class used by other parts.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/PropertyConverterManager.html#register-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">register(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></dt>
+<dt><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">RegexPropertyFilter</span></a> - Class in <a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></dt>
 <dd>
-<div class="block">Registers a ew converter instance.</div>
+<div class="block">Predicate filtering using a regex expression operating on the key.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#removeMetaEntry-java.lang.String-">removeMetaEntry(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
-<dd>
-<div class="block">Removes a meta entry.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">removePropertyConverters(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html#%3Cinit%3E()">RegexPropertyFilter()</a></span> - Constructor for class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">removePropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#register(java.lang.Class,java.util.List,boolean)">register(Class&lt;T&gt;, List&lt;T&gt;, boolean)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-">removePropertyConverters(TypeLiteral&lt;?&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#register(java.lang.Class,java.util.List,boolean)">register(Class&lt;T&gt;, List&lt;T&gt;, boolean)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#register(java.lang.Class,java.util.List,boolean)">register(Class&lt;T&gt;, List&lt;T&gt;, boolean)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">removePropertyConverters(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#register(java.lang.Class,T,boolean)">register(Class&lt;T&gt;, T, boolean)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#register(java.lang.Class,T,boolean)">register(Class&lt;T&gt;, T, boolean)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
 <dd>
-<div class="block">Removes the given PropertyConverter instances for the given type,
- if existing.</div>
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">removePropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#register(java.lang.Class,T,boolean)">register(Class&lt;T&gt;, T, boolean)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html#register(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter)">register(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></dt>
 <dd>
-<div class="block">Removes the given PropertyConverter instances for the given type,
- if existing.</div>
+<div class="block">Registers a new converters instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-">removePropertyConverters(TypeLiteral&lt;?&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration(ClassLoader)</a></span> - Static method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">Releases the configuration associated with the given classloader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration(ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration(ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dd>
+<div class="block">This method allows to release a <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for a classloader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#reload()">reload()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dd>
+<div class="block">Removes all registered change listeners, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#removeAllChangeListeners()">removeAllChangeListeners()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#removeAllChangeListeners()">removeAllChangeListeners()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener(BiConsumer&lt;Set&lt;String&gt;, PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dt>
+<dd>
+<div class="block">Removes a change listener for this properrty source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener(BiConsumer&lt;Set&lt;String&gt;, PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener(BiConsumer&lt;Set&lt;String&gt;, PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#removeMeta(java.lang.String)">removeMeta(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Removes a getMeta entry.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters(TypeLiteral&lt;?&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Removes all converters for the given type, which actually renders a given type
  unsupported for type conversion.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">removePropertyFilters(PropertyFilter...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters(TypeLiteral&lt;?&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyFilters-java.util.Collection-">removePropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">removePropertyFilters(PropertyFilter...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Removes the given PropertyFilter instances, if existing.</div>
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyFilters-java.util.Collection-">removePropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters(TypeLiteral&lt;T&gt;, Collection&lt;PropertyConverter&lt;T&gt;&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters(TypeLiteral&lt;T&gt;, PropertyConverter&lt;T&gt;...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Removes the given PropertyFilter instances, if existing.</div>
+<div class="block">Removes the given <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances for the given type,
+ if existing.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertySources-org.apache.tamaya.spi.PropertySource...-">removePropertySources(PropertySource...)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Removes the given <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters(Collection&lt;PropertyFilter&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertySources-java.util.Collection-">removePropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertySources-org.apache.tamaya.spi.PropertySource...-">removePropertySources(PropertySource...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">removePropertyFilters(PropertyFilter...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Removes the given <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Removes the given property sources, if existing.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertySources-java.util.Collection-">removePropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources(Collection&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#removePropertySources(org.apache.tamaya.spi.PropertySource...)">removePropertySources(PropertySource...)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Removes the given property sources, if existing.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/OSGIServiceContext.html#reset()">reset()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContext.html#reset()">reset()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dt>
+<dd>
+<div class="block">Resets the current service context, removing all loaded services.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#reset()">reset()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultServiceContext.html#reset()">reset()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/MetadataProvider.html#reset()">reset()</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></dt>
+<dd>
+<div class="block">Resets this instance, which means it reloads metadata based on the given context and</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#reset(java.lang.String)">reset(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/MetadataProvider.html#reset(java.lang.String)">reset(String)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></dt>
+<dd>
+<div class="block">Resets metadata for a property, which means it reloads metadata based on the given context and</div>
+</dd>
 </dl>
-<a name="I:S">
+<a id="I:S">
 <!--   -->
 </a>
 <h2 class="title">S</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html#scheduleChangeMonitor(java.util.function.Supplier,long,java.util.concurrent.TimeUnit)">scheduleChangeMonitor(Supplier&lt;Map&lt;String, PropertyValue&gt;&gt;, long, TimeUnit)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#serviceContext">serviceContext</a></span> - Variable in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContext</span></a> - Interface in <a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></dt>
 <dd>
 <div class="block">This class models the component that is managing the lifecycle current the
@@ -1545,184 +2579,328 @@
 <dd>
 <div class="block">This singleton provides access to the services available in the current <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#set-org.apache.tamaya.spi.ServiceContext-">set(ServiceContext)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#set(org.apache.tamaya.spi.ServiceContext)">set(ServiceContext)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
 <dd>
 <div class="block">Replace the current <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setAnnotatedElement-java.lang.reflect.AnnotatedElement-">setAnnotatedElement(AnnotatedElement)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setAnnotatedElement(java.lang.reflect.AnnotatedElement)">setAnnotatedElement(AnnotatedElement)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
 <dd>
 <div class="block">Sets the annotated element, when configuration is injected.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration(Configuration)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport(ChangeSupport)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
 <dd>
-<div class="block">This method allows to replace the current default <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+<div class="block">Sets the change support.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">setClassLoader(ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Set the classloader to be used for loading of configuration resources, equals to
+ <code>setServiceContext(ServiceContextManager.getServiceContext(classLoader))</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">setClassLoader(ClassLoader)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration(Configuration)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration(Configuration)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration(Configuration)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Init this builder instance with the given <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration(Configuration)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dd>
+<div class="block">Sets the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration(Configuration)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Allows to setCurrent configuration context during unit tests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration(Configuration, ClassLoader)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration(Configuration, ClassLoader)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration(Configuration)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration(Configuration, ClassLoader)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
 <dd>
 <div class="block">This method allows to replace the current <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration(Configuration)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
-<dd>
-<div class="block">Sets the configuration.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/ConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext(ConfigurationContext)</a></span> - Static method in class org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">Use #setConfiguration(Configuration) instead of.</span></div>
-</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></dt>
-<dd>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>
-<div class="block"><span class="deprecationComment">use <a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>ConfigurationProviderSpi.setConfiguration(Configuration)</code></a></span></div>
-</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
-<dd>
-<div class="block">Sets the configuration.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#setContext-org.apache.tamaya.spi.ConfigurationContext-">setContext(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#setContext-org.apache.tamaya.spi.ConfigurationContext-">setContext(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext(ConfigurationContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Init this builder instance with the given <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#setDefaultOrdinal-java.lang.Integer-">setDefaultOrdinal(Integer)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
-<dd>
-<div class="block">Allows to set the ordinal of this property source explcitly.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#setEnabled-boolean-">setEnabled(boolean)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext(ConfigurationContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setKey-java.lang.String-">setKey(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#setCurrent(org.apache.tamaya.Configuration)">setCurrent(Configuration)</a></span> - Static method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">This method allows replacement of the current default <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setCurrent(Configuration, ClassLoader)</a></span> - Static method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dd>
+<div class="block">This method allows replacement of the current default <a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal(Integer)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal(Integer)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#setDisabled(boolean)">setDisabled(boolean)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#setEnabled(boolean)">setEnabled(boolean)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html#setExcludes(java.lang.String...)">setExcludes(String...)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></dt>
+<dd>
+<div class="block">Sets the regex expression to be applied on the key to remove the corresponding entries
+ if matching.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html#setIncludes(java.lang.String...)">setIncludes(String...)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></dt>
+<dd>
+<div class="block">Sets the regex expression to be applied on the key to filter the corresponding entry
+ if matching.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setKey(java.lang.String)">setKey(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
 <dd>
 <div class="block">Sets the key.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#setKey-java.lang.String-">setKey(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#setKey(java.lang.String)">setKey(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
-<div class="block">Sets a new key.</div>
+<div class="block">Changes the entry's key, mapping also corresponding context entries.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#setMetaEntries-java.util.Map-">setMetaEntries(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#setMeta(java.lang.String,java.lang.Object)">setMeta(String, Object)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Add an additional context data information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta(String, String, String)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Adds (overrides existing value) the given sources as property sources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta(String, String, String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta(String, String, String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/MetadataProvider.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta(String, String, String)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></dt>
+<dd>
+<div class="block">Adds additional metadata.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">setMeta(String, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Adds (overrides existing value with same same keys) the given sources as property sources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">setMeta(String, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#setMeta(java.lang.String,java.util.Map)">setMeta(String, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/MetadataProvider.html#setMeta(java.lang.String,java.util.Map)">setMeta(String, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></dt>
+<dd>
+<div class="block">Adds additional metadata.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#setMeta(java.util.Map)">setMeta(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
 <dd>
 <div class="block">Replaces/sets the context data.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Sets the property source's (unique) name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
 <dd>
 <div class="block">Sets the property source's (unique) name.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#setOrdinal-java.lang.Integer-">setOrdinal(Integer)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal(Integer)</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
 <dd>
-<div class="block">Allows to set the ordinal of this property source explcitly.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#setPropertyValueCombinationPolicy-org.apache.tamaya.spi.PropertyValueCombinationPolicy-">setPropertyValueCombinationPolicy(PropertyValueCombinationPolicy)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal(Integer)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/PropertySourceComparator.html#setOrdinalKey(java.lang.String)">setOrdinalKey(String)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></dt>
+<dd>
+<div class="block">Overrides/adds the key to evaluate/override a property source ordinal.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#setParent(org.apache.tamaya.spi.PropertyValue)">setParent(PropertyValue)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Sets the new parent, used iternally when converting between value types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#setPrefix(java.lang.String)">setPrefix(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#setPropertyValueCombinationPolicy-org.apache.tamaya.spi.PropertyValueCombinationPolicy-">setPropertyValueCombinationPolicy(PropertyValueCombinationPolicy)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setPropertyValue(org.apache.tamaya.spi.PropertyValue)">setPropertyValue(PropertyValue)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
 <dd>
-<div class="block">Sets the <a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a> used to evaluate the final
- property values.</div>
+<div class="block">Adds another existing node, hereby setting the corresponding parent node.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#setSource-java.lang.String-">setSource(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext(ServiceContext)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
-<div class="block">Sets a new source.</div>
+<div class="block">Sets the ServiceContext to be used.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#setValue-java.lang.String-">setValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext(ServiceContext)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setTargetType(org.apache.tamaya.TypeLiteral)">setTargetType(TypeLiteral)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
 <dd>
-<div class="block">Sets a new value.</div>
+<div class="block">Sets the target type explicitly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ServiceContextManager.html#setToStaticClassLoader(org.apache.tamaya.spi.ServiceContext)">setToStaticClassLoader(ServiceContext)</a></span> - Static method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></dt>
+<dd>
+<div class="block">Replace the current <a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> for the ServiceContextManager's classloader in use.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#setValue(java.lang.String)">setValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setValue(java.lang.String)">setValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#setValue(java.lang.String)">setValue(String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Sets the createValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setValue(java.lang.String,java.lang.String)">setValue(String, String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Sets the given key, value pair.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setValues(java.util.List)">setValues(List&lt;PropertyValue&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dd>
+<div class="block">Sets the underlying values evaluated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setValues(java.util.Map)">setValues(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setValues(java.util.Map,java.lang.String,boolean)">setValues(Map&lt;String, String&gt;, String, boolean)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#setValues(org.apache.tamaya.spi.PropertyValue...)">setValues(PropertyValue...)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dd>
+<div class="block">Sets the underlying values evaluated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setValueWithCompositeKey(java.lang.String,java.lang.String)">setValueWithCompositeKey(String, String)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Adds a new child getValue, where the getValue is given in '.'</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#setValueWithCompositeKey(java.util.Map)">setValueWithCompositeKey(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Adds multiple values, where the keys are given in '.'</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#setVersion(int)">setVersion(int)</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Sets the new version, used iternally when cloning.</div>
 </dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ShortConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
 <div class="block">Converter, converting from String to Short, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
      MAX (ignoring case)
  </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#ShortConverter--">ShortConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/ShortConverter.html#%3Cinit%3E()">ShortConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">SimplePropertySource</span></a> - Class in <a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></dt>
+<dt><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySource</span></a> - Class in <a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></dt>
+<dd>
+<div class="block">A simple PropertySource class.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SimplePropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
 <dd>
 <div class="block">Simple implementation of a <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
  simple property files and XML property files.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html#SimplePropertySource-java.io.File-">SimplePropertySource(File)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></dt>
-<dd>
-<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html#SimplePropertySource-java.net.URL-">SimplePropertySource(URL)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></dt>
-<dd>
-<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html#SimplePropertySource-java.lang.String-java.util.Map-">SimplePropertySource(String, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></dt>
-<dd>
-<div class="block">Creates a new Properties based PropertySource based on the given properties map.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html#SimplePropertySource-java.lang.String-java.net.URL-">SimplePropertySource(String, URL)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></dt>
-<dd>
-<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
-</dd>
-<dt><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySource</span></a> - Class in <a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#%3Cinit%3E()">SimplePropertySource()</a></span> - Constructor for class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#SimplePropertySource--">SimplePropertySource()</a></span> - Constructor for class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></dt>
-<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#%3Cinit%3E(java.io.File)">SimplePropertySource(File)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#%3Cinit%3E(java.lang.String,java.net.URL)">SimplePropertySource(String, URL)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#%3Cinit%3E(java.lang.String,java.util.Map)">SimplePropertySource(String, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new Properties based PropertySource based on the given properties mapProperties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#%3Cinit%3E(java.lang.String,java.util.Map,int)">SimplePropertySource(String, Map&lt;String, String&gt;, int)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new Properties based PropertySource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html#%3Cinit%3E(java.net.URL)">SimplePropertySource(URL)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dt>
+<dd>
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SimplePropertySource.Builder</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
+<dd>
+<div class="block"><code>SimplePropertySource</code> builder static inner class.</div>
+</dd>
 <dt><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySourceProvider</span></a> - Class in <a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></dt>
+<dd>
+<div class="block">A simple PropertySource provider class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#%3Cinit%3E()">SimplePropertySourceProvider()</a></span> - Constructor for class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#SimplePropertySourceProvider--">SimplePropertySourceProvider()</a></span> - Constructor for class org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter(Comparator&lt;PropertyConverter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
+<dd>
+<div class="block">Sorts the current registered property converters using the given comparator.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter(Comparator&lt;PropertyConverter&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#sortPropertyFilter-java.util.Comparator-">sortPropertyFilter(Comparator&lt;PropertyFilter&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#sortPropertyFilter-java.util.Comparator-">sortPropertyFilter(Comparator&lt;PropertyFilter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter(Comparator&lt;PropertyFilter&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Sorts the current registered property filters using the given comparator.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#sortPropertySources-java.util.Comparator-">sortPropertySources(Comparator&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter(Comparator&lt;PropertyFilter&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html#sortPropertySources-java.util.Comparator-">sortPropertySources(Comparator&lt;PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources(Comparator&lt;PropertySource&gt;)</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></dt>
 <dd>
 <div class="block">Sorts the current registered property sources using the given comparator.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/OSGIActivator.html#start-org.osgi.framework.BundleContext-">start(BundleContext)</a></span> - Method in class org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources(Comparator&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/OSGIActivator.html#stop-org.osgi.framework.BundleContext-">stop(BundleContext)</a></span> - Method in class org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/OSGIActivator.html#start(org.osgi.framework.BundleContext)">start(BundleContext)</a></span> - Method in class org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">SystemPropertySource</span></a> - Class in <a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/OSGIActivator.html#stop(org.osgi.framework.BundleContext)">stop(BundleContext)</a></span> - Method in class org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">SupplierConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to Supplier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html#%3Cinit%3E()">SupplierConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ChangeSupport.html#SUPPORTED">SUPPORTED</a></span> - org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></dt>
+<dd>
+<div class="block">Config change is supported, this config source supports registering ConfigChangeListeners.</div>
+</dd>
+<dt><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SystemPropertySource</span></a> - Class in <a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></dt>
 <dd>
 <div class="block">This <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#SystemPropertySource--">SystemPropertySource()</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#%3Cinit%3E()">SystemPropertySource()</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
 <dd>
 <div class="block">Creates a new instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#SystemPropertySource-int-">SystemPropertySource(int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html#%3Cinit%3E(int)">SystemPropertySource(int)</a></span> - Constructor for class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></dt>
 <dd>
-<div class="block">Creates a new instance using a fixed ordinal value.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#SystemPropertySource-java.lang.String-int-">SystemPropertySource(String, int)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
-<dd>
-<div class="block">Creates a new instance.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html#SystemPropertySource-java.lang.String-">SystemPropertySource(String)</a></span> - Constructor for class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dt>
-<dd>
-<div class="block">Creates a new instance.</div>
+<div class="block">Creates a new instance using a fixed ordinal createValue.</div>
 </dd>
 </dl>
-<a name="I:T">
+<a id="I:T">
 <!--   -->
 </a>
 <h2 class="title">T</h2>
@@ -1731,91 +2909,294 @@
 <dd>
 <div class="block">property name to override default tamaya ordinals</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#toBuilder--">toBuilder()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConfigurationContext.html#toBuilder--">toBuilder()</a></span> - Method in interface org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#toBuilder()">toBuilder()</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
-<div class="block">Creates a <a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> preinitialized with the data from this instance.</div>
+<div class="block">Create a new builder using this instance as its base.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toBuilder--">toBuilder()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/CoreConfiguration.html#toBuilder()">toBuilder()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#toBuilder()">toBuilder()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>
-<div class="block">Creates a new builder instance based on this item.</div>
+<div class="block">Creates a builder based on this instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#toListValue()">toListValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#toListValue()">toListValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal">DefaultConfigValueEvaluator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toListValue()">toListValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Convert an instance to a List PropertyValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#toLocalMap()">toLocalMap()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Convert the value tree to a local property map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toLocalMap()">toLocalMap()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Convert the value tree to a property mapProperties using local keys.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#toMap()">toMap()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
+<dd>
+<div class="block">Convert the value tree to a property map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toMap()">toMap()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Convert the value tree to a property map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#toObjectValue()">toObjectValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#toObjectValue()">toObjectValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toObjectValue()">toObjectValue()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.Builder.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ConversionContext.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/FilterContext.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ListValue.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValueBuilder.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ObjectValue.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#toString--">toString()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dt>
+<dd>
+<div class="block">Create a String representation of the tree.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#toString()">toString()</a></span> - Method in class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/propertysource/BasePropertySource.html#toStringValues()">toStringValues()</a></span> - Method in class org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html#toStringValues()">toStringValues()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html#toStringValues()">toStringValues()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html#toStringValues()">toStringValues()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html#toStringValues()">toStringValues()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">TypeLiteral</span></a>&lt;<a href="org/apache/tamaya/TypeLiteral.html" title="type parameter in TypeLiteral">T</a>&gt; - Class in <a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></dt>
 <dd>
 <div class="block">Class for instantiation of objects that represent parameterized types
  with current parameters.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#TypeLiteral-java.lang.reflect.Type-">TypeLiteral(Type)</a></span> - Constructor for class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#%3Cinit%3E()">TypeLiteral()</a></span> - Constructor for class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
+<dd>
+<div class="block">Constructor only for directly implementing a TypeLiteral hereby dynamically implementing a generic interface.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#%3Cinit%3E(java.lang.reflect.Type)">TypeLiteral(Type)</a></span> - Constructor for class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
 <dd>
 <div class="block">Constructor.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/TypeLiteral.html#TypeLiteral--">TypeLiteral()</a></span> - Constructor for class org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></dt>
-<dd>
-<div class="block">Constructor only for directly implemeting a TypeLiteral hereby dynamically implementing a generic interface.</div>
-</dd>
 </dl>
-<a name="I:U">
+<a id="I:U">
 <!--   -->
 </a>
 <h2 class="title">U</h2>
 <dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ChangeSupport.html#UNSUPPORTED">UNSUPPORTED</a></span> - org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></dt>
+<dd>
+<div class="block">Config change is not supported.</div>
+</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URIConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
-<div class="block">Converter, converting from String to URI, using new URI(value).</div>
+<div class="block">Converter, converting from String to URI, using new URI(createValue).</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#URIConverter--">URIConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URIConverter.html#%3Cinit%3E()">URIConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URLConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
 <dd>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<div class="block">Converter, converting from String to URL, using new URL(createValue).</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#URLConverter--">URLConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/URLConverter.html#%3Cinit%3E()">URLConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a name="I:W">
+<a id="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#VALUE">VALUE</a></span> - org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></dt>
+<dd>
+<div class="block">A simple value property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ChangeSupport.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/ChangeSupport.html#values()">values()</a></span> - Static method in enum org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spi/PropertyValue.ValueType.html#values()">values()</a></span> - Static method in enum org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+</dl>
+<a id="I:W">
 <!--   -->
 </a>
 <h2 class="title">W</h2>
 <dl>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#with-org.apache.tamaya.ConfigOperator-">with(ConfigOperator)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/Configuration.html#with(org.apache.tamaya.ConfigOperator)">with(ConfigOperator)</a></span> - Method in interface org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></dt>
 <dd>
-<div class="block">Extension point for adjusting configuration.</div>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">use <a href="org/apache/tamaya/Configuration.html#map(java.util.function.UnaryOperator)"><code>Configuration.map(UnaryOperator)</code></a></div>
+</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/DefaultConfiguration.html#with-org.apache.tamaya.ConfigOperator-">with(ConfigOperator)</a></span> - Method in class org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html#with(org.apache.tamaya.ConfigOperator)">with(ConfigOperator)</a></span> - Method in class org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withDefaultOrdinal(int)">withDefaultOrdinal(int)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Sets the <code>defaultOrdinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withName(java.lang.String)">withName(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With name builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withName(java.lang.String)">withName(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Sets the <code>name</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withOrdinal(int)">withOrdinal(int)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With ordinal builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withOrdinal(int)">withOrdinal(int)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Sets the <code>ordinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withProperties(java.io.File)">withProperties(File)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withProperties(java.net.URL)">withProperties(URL)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withProperties(java.util.Map)">withProperties(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withProperties(java.util.Map,java.lang.String)">withProperties(Map&lt;String, String&gt;, String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With properties builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withProperties(java.util.Map)">withProperties(Map&lt;String, PropertyValue&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With properties builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withProperties(org.apache.tamaya.spi.PropertyValue...)">withProperties(PropertyValue...)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With properties builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withProperty(java.lang.String,java.lang.String)">withProperty(String, String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html#withPropertySourcs(java.util.Collection)">withPropertySourcs(Collection&lt;PropertySource&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></dt>
+<dd>
+<div class="block">With property sources builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html#withPropertySourcs(org.apache.tamaya.spi.PropertySource...)">withPropertySourcs(PropertySource...)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></dt>
+<dd>
+<div class="block">With propertySources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withSimpleProperties(java.util.Map)">withSimpleProperties(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With simple properties builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withSimpleProperty(java.lang.String,java.lang.String)">withSimpleProperty(String, String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With simple property builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withSimpleProperty(java.lang.String,java.lang.String,java.lang.String)">withSimpleProperty(String, String, String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With simple property builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html#withSource(java.lang.String)">withSource(String)</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></dt>
+<dd>
+<div class="block">With source builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html#withUuidName()">withUuidName()</a></span> - Method in class org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></dt>
+<dd>
+<div class="block">Sets the <code>name</code> to a new UUID and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</dd>
+</dl>
+<a id="I:Y">
+<!--   -->
+</a>
+<h2 class="title">Y</h2>
+<dl>
+<dt><a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">YearConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to Year.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearConverter.html#%3Cinit%3E()">YearConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">YearMonthConverter</span></a> - Class in <a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></dt>
+<dd>
+<div class="block">Converter, converting from String to YearMonth.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html#%3Cinit%3E()">YearMonthConverter()</a></span> - Constructor for class org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></dt>
 <dd>&nbsp;</dd>
 </dl>
-<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -1826,16 +3207,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
-<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -1848,11 +3221,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/index.html b/apidocs/stable/index.html
index eb168f1..f88466b 100644
--- a/apidocs/stable/index.html
+++ b/apidocs/stable/index.html
@@ -1,76 +1,217 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Overview (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Apache Tamaya Base 0.3-incubating API</title>
-<script type="text/javascript">
-    tmpTargetPage = "" + window.location.search;
-    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
-        tmpTargetPage = tmpTargetPage.substring(1);
-    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
-        tmpTargetPage = "undefined";
-    targetPage = tmpTargetPage;
-    function validURL(url) {
-        try {
-            url = decodeURIComponent(url);
-        }
-        catch (error) {
-            return false;
-        }
-        var pos = url.indexOf(".html");
-        if (pos == -1 || pos != url.length - 5)
-            return false;
-        var allowNumber = false;
-        var allowSep = false;
-        var seenDot = false;
-        for (var i = 0; i < url.length - 5; i++) {
-            var ch = url.charAt(i);
-            if ('a' <= ch && ch <= 'z' ||
-                    'A' <= ch && ch <= 'Z' ||
-                    ch == '$' ||
-                    ch == '_' ||
-                    ch.charCodeAt(0) > 127) {
-                allowNumber = true;
-                allowSep = true;
-            } else if ('0' <= ch && ch <= '9'
-                    || ch == '-') {
-                if (!allowNumber)
-                     return false;
-            } else if (ch == '/' || ch == '.') {
-                if (!allowSep)
-                    return false;
-                allowNumber = false;
-                allowSep = false;
-                if (ch == '.')
-                     seenDot = true;
-                if (ch == '/' && seenDot)
-                     return false;
-            } else {
-                return false;
-            }
-        }
-        return true;
-    }
-    function loadFrames() {
-        if (targetPage != "" && targetPage != "undefined")
-             top.classFrame.location = top.targetPage;
-    }
-</script>
+<meta name="keywords" content="Overview, Apache Tamaya Base 0.4-incubating API">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
-<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
-<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
-<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
-<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
-</frameset>
-<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
-<noframes>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
-<h2>Frame Alert</h2>
-<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
-</noframes>
-</frameset>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<div class="header">
+<h1 class="title">Apache Tamaya Base 0.4-incubating API</h1>
+</div>
+<main role="main">
+<div class="contentContainer">
+<table class="overviewSummary">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/package-summary.html">org.apache.tamaya.core</a></th>
+<td class="colLast">
+<div class="block">This is the root package of the Apache Tamaya API implementation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of the converters provided by default.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i5">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i6">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/examples/minimal/package-summary.html">org.apache.tamaya.examples.minimal</a></th>
+<td class="colLast">
+<div class="block">Example to show the simplest ways to use Tamaya with
+ the standard configuration file.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/spisupport/package-summary.html">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i9">
+<th class="colFirst" scope="row"><a href="org/apache/tamaya/spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
 </html>
diff --git a/apidocs/stable/jquery/external/jquery/jquery.js b/apidocs/stable/jquery/external/jquery/jquery.js
new file mode 100644
index 0000000..9b5206b
--- /dev/null
+++ b/apidocs/stable/jquery/external/jquery/jquery.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/stable/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png b/apidocs/stable/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000..ca17cb7
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_flat_75_ffffff_40x100.png b/apidocs/stable/jquery/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 0000000..e6a4176
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_flat_75_ffffff_40x100.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png b/apidocs/stable/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 0000000..0a084fd
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_glass_65_ffffff_1x400.png b/apidocs/stable/jquery/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 0000000..5b48209
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_glass_65_ffffff_1x400.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_glass_75_dadada_1x400.png b/apidocs/stable/jquery/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 0000000..820ef7b
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_glass_75_dadada_1x400.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png b/apidocs/stable/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 0000000..2677049
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_glass_95_fef1ec_1x400.png b/apidocs/stable/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000..671bc6b
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/apidocs/stable/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 0000000..368044d
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-icons_222222_256x240.png b/apidocs/stable/jquery/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000..e9c8e16
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-icons_2e83ff_256x240.png b/apidocs/stable/jquery/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..f2bf838
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-icons_454545_256x240.png b/apidocs/stable/jquery/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000..d6169e8
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-icons_454545_256x240.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-icons_888888_256x240.png b/apidocs/stable/jquery/images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000..d3e6e02
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-icons_888888_256x240.png
Binary files differ
diff --git a/apidocs/stable/jquery/images/ui-icons_cd0a0a_256x240.png b/apidocs/stable/jquery/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000..4937018
--- /dev/null
+++ b/apidocs/stable/jquery/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/apidocs/stable/jquery/jquery-3.3.1.js b/apidocs/stable/jquery/jquery-3.3.1.js
new file mode 100644
index 0000000..9b5206b
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-3.3.1.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/stable/jquery/jquery-migrate-3.0.1.js b/apidocs/stable/jquery/jquery-migrate-3.0.1.js
new file mode 100644
index 0000000..6c1d4ff
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-migrate-3.0.1.js
@@ -0,0 +1,628 @@
+/*!
+ * jQuery Migrate - v3.0.1 - 2017-09-26
+ * Copyright jQuery Foundation and other contributors
+ */
+;( function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define( [ "jquery" ], window, factory );
+	} else if ( typeof module === "object" && module.exports ) {
+
+		// Node/CommonJS
+		// eslint-disable-next-line no-undef
+		module.exports = factory( require( "jquery" ), window );
+	} else {
+
+		// Browser globals
+		factory( jQuery, window );
+	}
+} )( function( jQuery, window ) {
+"use strict";
+
+
+jQuery.migrateVersion = "3.0.1";
+
+jQuery.migrateMute = true;
+
+/* exported migrateWarn, migrateWarnFunc, migrateWarnProp */
+
+( function() {
+
+	var rbadVersions = /^[12]\./;
+
+	// Support: IE9 only
+	// IE9 only creates console object when dev tools are first opened
+	// IE9 console is a host object, callable but doesn't have .apply()
+	if ( !window.console || !window.console.log ) {
+		return;
+	}
+
+	// Need jQuery 3.0.0+ and no older Migrate loaded
+	if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
+		window.console.log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
+	}
+	if ( jQuery.migrateWarnings ) {
+		window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" );
+	}
+
+	// Show a message on the console so devs know we're active
+	window.console.log( "JQMIGRATE: Migrate is installed" +
+		( jQuery.migrateMute ? "" : " with logging active" ) +
+		", version " + jQuery.migrateVersion );
+
+} )();
+
+var warnedAbout = {};
+
+// List of warnings already given; public read only
+jQuery.migrateWarnings = [];
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+	jQuery.migrateTrace = true;
+}
+
+// Forget any warnings we've already given; public
+jQuery.migrateReset = function() {
+	warnedAbout = {};
+	jQuery.migrateWarnings.length = 0;
+};
+
+function migrateWarn( msg ) {
+	var console = window.console;
+	if ( !warnedAbout[ msg ] ) {
+		warnedAbout[ msg ] = true;
+		jQuery.migrateWarnings.push( msg );
+		if ( console && console.warn && !jQuery.migrateMute ) {
+			console.warn( "JQMIGRATE: " + msg );
+			if ( jQuery.migrateTrace && console.trace ) {
+				console.trace();
+			}
+		}
+	}
+}
+
+function migrateWarnProp( obj, prop, value, msg ) {
+	Object.defineProperty( obj, prop, {
+		configurable: true,
+		enumerable: true,
+		get: function() {
+			migrateWarn( msg );
+			return value;
+		},
+		set: function( newValue ) {
+			migrateWarn( msg );
+			value = newValue;
+		}
+	} );
+}
+
+function migrateWarnFunc( obj, prop, newFunc, msg ) {
+	obj[ prop ] = function() {
+		migrateWarn( msg );
+		return newFunc.apply( this, arguments );
+	};
+}
+
+if ( window.document.compatMode === "BackCompat" ) {
+
+	// JQuery has never supported or tested Quirks Mode
+	migrateWarn( "jQuery is not compatible with Quirks Mode" );
+}
+
+
+var oldInit = jQuery.fn.init,
+	oldIsNumeric = jQuery.isNumeric,
+	oldFind = jQuery.find,
+	rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
+	rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
+
+jQuery.fn.init = function( arg1 ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	if ( typeof arg1 === "string" && arg1 === "#" ) {
+
+		// JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
+		migrateWarn( "jQuery( '#' ) is not a valid selector" );
+		args[ 0 ] = [];
+	}
+
+	return oldInit.apply( this, args );
+};
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.find = function( selector ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	// Support: PhantomJS 1.x
+	// String#match fails to match when used with a //g RegExp, only on some strings
+	if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
+
+		// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
+		// First see if qS thinks it's a valid selector, if so avoid a false positive
+		try {
+			window.document.querySelector( selector );
+		} catch ( err1 ) {
+
+			// Didn't *look* valid to qSA, warn and try quoting what we think is the value
+			selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
+				return "[" + attr + op + "\"" + value + "\"]";
+			} );
+
+			// If the regexp *may* have created an invalid selector, don't update it
+			// Note that there may be false alarms if selector uses jQuery extensions
+			try {
+				window.document.querySelector( selector );
+				migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
+				args[ 0 ] = selector;
+			} catch ( err2 ) {
+				migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
+			}
+		}
+	}
+
+	return oldFind.apply( this, args );
+};
+
+// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
+var findProp;
+for ( findProp in oldFind ) {
+	if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
+		jQuery.find[ findProp ] = oldFind[ findProp ];
+	}
+}
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+	migrateWarn( "jQuery.fn.size() is deprecated and removed; use the .length property" );
+	return this.length;
+};
+
+jQuery.parseJSON = function() {
+	migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
+	return JSON.parse.apply( null, arguments );
+};
+
+jQuery.isNumeric = function( val ) {
+
+	// The jQuery 2.2.3 implementation of isNumeric
+	function isNumeric2( obj ) {
+		var realStringObj = obj && obj.toString();
+		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+	}
+
+	var newValue = oldIsNumeric( val ),
+		oldValue = isNumeric2( val );
+
+	if ( newValue !== oldValue ) {
+		migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
+	}
+
+	return oldValue;
+};
+
+migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
+	"jQuery.holdReady is deprecated" );
+
+migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
+	"jQuery.unique is deprecated; use jQuery.uniqueSort" );
+
+// Now jQuery.expr.pseudos is the standard incantation
+migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
+	"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" );
+migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
+	"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" );
+
+
+var oldAjax = jQuery.ajax;
+
+jQuery.ajax = function( ) {
+	var jQXHR = oldAjax.apply( this, arguments );
+
+	// Be sure we got a jQXHR (e.g., not sync)
+	if ( jQXHR.promise ) {
+		migrateWarnFunc( jQXHR, "success", jQXHR.done,
+			"jQXHR.success is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "error", jQXHR.fail,
+			"jQXHR.error is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "complete", jQXHR.always,
+			"jQXHR.complete is deprecated and removed" );
+	}
+
+	return jQXHR;
+};
+
+
+var oldRemoveAttr = jQuery.fn.removeAttr,
+	oldToggleClass = jQuery.fn.toggleClass,
+	rmatchNonSpace = /\S+/g;
+
+jQuery.fn.removeAttr = function( name ) {
+	var self = this;
+
+	jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) {
+		if ( jQuery.expr.match.bool.test( attr ) ) {
+			migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
+			self.prop( attr, false );
+		}
+	} );
+
+	return oldRemoveAttr.apply( this, arguments );
+};
+
+jQuery.fn.toggleClass = function( state ) {
+
+	// Only deprecating no-args or single boolean arg
+	if ( state !== undefined && typeof state !== "boolean" ) {
+		return oldToggleClass.apply( this, arguments );
+	}
+
+	migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
+
+	// Toggle entire class name of each element
+	return this.each( function() {
+		var className = this.getAttribute && this.getAttribute( "class" ) || "";
+
+		if ( className ) {
+			jQuery.data( this, "__className__", className );
+		}
+
+		// If the element has a class name or if we're passed `false`,
+		// then remove the whole classname (if there was one, the above saved it).
+		// Otherwise bring back whatever was previously saved (if anything),
+		// falling back to the empty string if nothing was stored.
+		if ( this.setAttribute ) {
+			this.setAttribute( "class",
+				className || state === false ?
+				"" :
+				jQuery.data( this, "__className__" ) || ""
+			);
+		}
+	} );
+};
+
+
+var internalSwapCall = false;
+
+// If this version of jQuery has .swap(), don't false-alarm on internal uses
+if ( jQuery.swap ) {
+	jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
+		var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
+
+		if ( oldHook ) {
+			jQuery.cssHooks[ name ].get = function() {
+				var ret;
+
+				internalSwapCall = true;
+				ret = oldHook.apply( this, arguments );
+				internalSwapCall = false;
+				return ret;
+			};
+		}
+	} );
+}
+
+jQuery.swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	if ( !internalSwapCall ) {
+		migrateWarn( "jQuery.swap() is undocumented and deprecated" );
+	}
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+var oldData = jQuery.data;
+
+jQuery.data = function( elem, name, value ) {
+	var curData;
+
+	// Name can be an object, and each entry in the object is meant to be set as data
+	if ( name && typeof name === "object" && arguments.length === 2 ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		var sameKeys = {};
+		for ( var key in name ) {
+			if ( key !== jQuery.camelCase( key ) ) {
+				migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key );
+				curData[ key ] = name[ key ];
+			} else {
+				sameKeys[ key ] = name[ key ];
+			}
+		}
+
+		oldData.call( this, elem, sameKeys );
+
+		return name;
+	}
+
+	// If the name is transformed, look for the un-transformed name in the data object
+	if ( name && typeof name === "string" && name !== jQuery.camelCase( name ) ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		if ( curData && name in curData ) {
+			migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
+			if ( arguments.length > 2 ) {
+				curData[ name ] = value;
+			}
+			return curData[ name ];
+		}
+	}
+
+	return oldData.apply( this, arguments );
+};
+
+var oldTweenRun = jQuery.Tween.prototype.run;
+var linearEasing = function( pct ) {
+		return pct;
+	};
+
+jQuery.Tween.prototype.run = function( ) {
+	if ( jQuery.easing[ this.easing ].length > 1 ) {
+		migrateWarn(
+			"'jQuery.easing." + this.easing.toString() + "' should use only one argument"
+		);
+
+		jQuery.easing[ this.easing ] = linearEasing;
+	}
+
+	oldTweenRun.apply( this, arguments );
+};
+
+jQuery.fx.interval = jQuery.fx.interval || 13;
+
+// Support: IE9, Android <=4.4
+// Avoid false positives on browsers that lack rAF
+if ( window.requestAnimationFrame ) {
+	migrateWarnProp( jQuery.fx, "interval", jQuery.fx.interval,
+		"jQuery.fx.interval is deprecated" );
+}
+
+var oldLoad = jQuery.fn.load,
+	oldEventAdd = jQuery.event.add,
+	originalFix = jQuery.event.fix;
+
+jQuery.event.props = [];
+jQuery.event.fixHooks = {};
+
+migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat,
+	"jQuery.event.props.concat() is deprecated and removed" );
+
+jQuery.event.fix = function( originalEvent ) {
+	var event,
+		type = originalEvent.type,
+		fixHook = this.fixHooks[ type ],
+		props = jQuery.event.props;
+
+	if ( props.length ) {
+		migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
+		while ( props.length ) {
+			jQuery.event.addProp( props.pop() );
+		}
+	}
+
+	if ( fixHook && !fixHook._migrated_ ) {
+		fixHook._migrated_ = true;
+		migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
+		if ( ( props = fixHook.props ) && props.length ) {
+			while ( props.length ) {
+				jQuery.event.addProp( props.pop() );
+			}
+		}
+	}
+
+	event = originalFix.call( this, originalEvent );
+
+	return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+};
+
+jQuery.event.add = function( elem, types ) {
+
+	// This misses the multiple-types case but that seems awfully rare
+	if ( elem === window && types === "load" && window.document.readyState === "complete" ) {
+		migrateWarn( "jQuery(window).on('load'...) called after load event occurred" );
+	}
+	return oldEventAdd.apply( this, arguments );
+};
+
+jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
+
+	jQuery.fn[ name ] = function() {
+		var args = Array.prototype.slice.call( arguments, 0 );
+
+		// If this is an ajax load() the first arg should be the string URL;
+		// technically this could also be the "Anything" arg of the event .load()
+		// which just goes to show why this dumb signature has been deprecated!
+		// jQuery custom builds that exclude the Ajax module justifiably die here.
+		if ( name === "load" && typeof args[ 0 ] === "string" ) {
+			return oldLoad.apply( this, args );
+		}
+
+		migrateWarn( "jQuery.fn." + name + "() is deprecated" );
+
+		args.splice( 0, 0, name );
+		if ( arguments.length ) {
+			return this.on.apply( this, args );
+		}
+
+		// Use .triggerHandler here because:
+		// - load and unload events don't need to bubble, only applied to window or image
+		// - error event should not bubble to window, although it does pre-1.7
+		// See http://bugs.jquery.com/ticket/11820
+		this.triggerHandler.apply( this, args );
+		return this;
+	};
+
+} );
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+// Trigger "ready" event only once, on document ready
+jQuery( function() {
+	jQuery( window.document ).triggerHandler( "ready" );
+} );
+
+jQuery.event.special.ready = {
+	setup: function() {
+		if ( this === window.document ) {
+			migrateWarn( "'ready' event is deprecated" );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		migrateWarn( "jQuery.fn.bind() is deprecated" );
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		migrateWarn( "jQuery.fn.unbind() is deprecated" );
+		return this.off( types, null, fn );
+	},
+	delegate: function( selector, types, data, fn ) {
+		migrateWarn( "jQuery.fn.delegate() is deprecated" );
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		migrateWarn( "jQuery.fn.undelegate() is deprecated" );
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	},
+	hover: function( fnOver, fnOut ) {
+		migrateWarn( "jQuery.fn.hover() is deprecated" );
+		return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
+	}
+} );
+
+
+var oldOffset = jQuery.fn.offset;
+
+jQuery.fn.offset = function() {
+	var docElem,
+		elem = this[ 0 ],
+		origin = { top: 0, left: 0 };
+
+	if ( !elem || !elem.nodeType ) {
+		migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
+		return origin;
+	}
+
+	docElem = ( elem.ownerDocument || window.document ).documentElement;
+	if ( !jQuery.contains( docElem, elem ) ) {
+		migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
+		return origin;
+	}
+
+	return oldOffset.apply( this, arguments );
+};
+
+
+var oldParam = jQuery.param;
+
+jQuery.param = function( data, traditional ) {
+	var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+
+	if ( traditional === undefined && ajaxTraditional ) {
+
+		migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
+		traditional = ajaxTraditional;
+	}
+
+	return oldParam.call( this, data, traditional );
+};
+
+var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
+
+jQuery.fn.andSelf = function() {
+	migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
+	return oldSelf.apply( this, arguments );
+};
+
+
+var oldDeferred = jQuery.Deferred,
+	tuples = [
+
+		// Action, add listener, callbacks, .then handlers, final state
+		[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "resolved" ],
+		[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "rejected" ],
+		[ "notify", "progress", jQuery.Callbacks( "memory" ),
+			jQuery.Callbacks( "memory" ) ]
+	];
+
+jQuery.Deferred = function( func ) {
+	var deferred = oldDeferred(),
+		promise = deferred.promise();
+
+	deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
+		var fns = arguments;
+
+		migrateWarn( "deferred.pipe() is deprecated" );
+
+		return jQuery.Deferred( function( newDefer ) {
+			jQuery.each( tuples, function( i, tuple ) {
+				var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+				// Deferred.done(function() { bind to newDefer or newDefer.resolve })
+				// deferred.fail(function() { bind to newDefer or newDefer.reject })
+				// deferred.progress(function() { bind to newDefer or newDefer.notify })
+				deferred[ tuple[ 1 ] ]( function() {
+					var returned = fn && fn.apply( this, arguments );
+					if ( returned && jQuery.isFunction( returned.promise ) ) {
+						returned.promise()
+							.done( newDefer.resolve )
+							.fail( newDefer.reject )
+							.progress( newDefer.notify );
+					} else {
+						newDefer[ tuple[ 0 ] + "With" ](
+							this === promise ? newDefer.promise() : this,
+							fn ? [ returned ] : arguments
+						);
+					}
+				} );
+			} );
+			fns = null;
+		} ).promise();
+
+	};
+
+	if ( func ) {
+		func.call( deferred, deferred );
+	}
+
+	return deferred;
+};
+
+// Preserve handler of uncaught exceptions in promise chains
+jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
+
+return jQuery;
+} );
diff --git a/apidocs/stable/jquery/jquery-ui.css b/apidocs/stable/jquery/jquery-ui.css
new file mode 100644
index 0000000..4f2fc19
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-ui.css
@@ -0,0 +1,544 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
+	color: #222222;
+}
+.ui-widget-content a {
+	color: #222222;
+}
+.ui-widget-header {
+	border: 1px solid #aaaaaa;
+	background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
+	color: #222222;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #d3d3d3;
+	background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #555555;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #555555;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #999999;
+	background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcefa1;
+	background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
+	color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
+	color: #cd0a0a;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #cd0a0a;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #cd0a0a;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-state-default .ui-icon {
+	background-image: url("images/ui-icons_888888_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-active .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-highlight .ui-icon {
+	background-image: url("images/ui-icons_2e83ff_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cd0a0a_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+	margin: -8px 0 0 -8px;
+	padding: 8px;
+	background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+	border-radius: 8px;
+}
diff --git a/apidocs/stable/jquery/jquery-ui.js b/apidocs/stable/jquery/jquery-ui.js
new file mode 100644
index 0000000..e1a68a1
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-ui.js
@@ -0,0 +1,2610 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */
+
+
+// $.ui might exist from components with no dependencies, e.g., $.ui.position
+$.ui = $.ui || {};
+
+$.extend( $.ui, {
+	version: "1.11.4",
+
+	keyCode: {
+		BACKSPACE: 8,
+		COMMA: 188,
+		DELETE: 46,
+		DOWN: 40,
+		END: 35,
+		ENTER: 13,
+		ESCAPE: 27,
+		HOME: 36,
+		LEFT: 37,
+		PAGE_DOWN: 34,
+		PAGE_UP: 33,
+		PERIOD: 190,
+		RIGHT: 39,
+		SPACE: 32,
+		TAB: 9,
+		UP: 38
+	}
+});
+
+// plugins
+$.fn.extend({
+	scrollParent: function( includeHidden ) {
+		var position = this.css( "position" ),
+			excludeStaticParent = position === "absolute",
+			overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+			scrollParent = this.parents().filter( function() {
+				var parent = $( this );
+				if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+					return false;
+				}
+				return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
+			}).eq( 0 );
+
+		return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
+	},
+
+	uniqueId: (function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each(function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			});
+		};
+	})(),
+
+	removeUniqueId: function() {
+		return this.each(function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		});
+	}
+});
+
+// selectors
+function focusable( element, isTabIndexNotNaN ) {
+	var map, mapName, img,
+		nodeName = element.nodeName.toLowerCase();
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
+		return !!img && visible( img );
+	}
+	return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
+		!element.disabled :
+		"a" === nodeName ?
+			element.href || isTabIndexNotNaN :
+			isTabIndexNotNaN) &&
+		// the element and all of its ancestors must be visible
+		visible( element );
+}
+
+function visible( element ) {
+	return $.expr.filters.visible( element ) &&
+		!$( element ).parents().addBack().filter(function() {
+			return $.css( this, "visibility" ) === "hidden";
+		}).length;
+}
+
+$.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo(function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		}) :
+		// support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		},
+
+	focusable: function( element ) {
+		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
+	},
+
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			isTabIndexNaN = isNaN( tabIndex );
+		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
+	}
+});
+
+// support: jQuery <1.8
+if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			});
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each(function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			});
+		};
+
+		$.fn[ "outer" + name] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each(function() {
+				$( this).css( type, reduce( this, size, true, margin ) + "px" );
+			});
+		};
+	});
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
+if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
+	$.fn.removeData = (function( removeData ) {
+		return function( key ) {
+			if ( arguments.length ) {
+				return removeData.call( this, $.camelCase( key ) );
+			} else {
+				return removeData.call( this );
+			}
+		};
+	})( $.fn.removeData );
+}
+
+// deprecated
+$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+$.fn.extend({
+	focus: (function( orig ) {
+		return function( delay, fn ) {
+			return typeof delay === "number" ?
+				this.each(function() {
+					var elem = this;
+					setTimeout(function() {
+						$( elem ).focus();
+						if ( fn ) {
+							fn.call( elem );
+						}
+					}, delay );
+				}) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.focus ),
+
+	disableSelection: (function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.bind( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+		};
+	})(),
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
+	},
+
+	zIndex: function( zIndex ) {
+		if ( zIndex !== undefined ) {
+			return this.css( "zIndex", zIndex );
+		}
+
+		if ( this.length ) {
+			var elem = $( this[ 0 ] ), position, value;
+			while ( elem.length && elem[ 0 ] !== document ) {
+				// Ignore z-index if position is set to a value where z-index is ignored by the browser
+				// This makes behavior of this function consistent across browsers
+				// WebKit always returns auto if the element is positioned
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+					// IE returns 0 when zIndex is not specified
+					// other browsers return a string
+					// we ignore the case of nested elements with an explicit value of 0
+					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
+						return value;
+					}
+				}
+				elem = elem.parent();
+			}
+		}
+
+		return 0;
+	}
+});
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+$.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+
+var widget_uuid = 0,
+	widget_slice = Array.prototype.slice;
+
+$.cleanData = (function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; (elem = elems[i]) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+})( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var fullName, existingConstructor, constructor, basePrototype,
+		// proxiedPrototype allows the provided prototype to remain unmodified
+		// so that it can be used as a mixin for multiple widgets (#8876)
+		proxiedPrototype = {},
+		namespace = name.split( "." )[ 0 ];
+
+	name = name.split( "." )[ 1 ];
+	fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	// create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+		// allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+	// extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+		// copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+		// track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	});
+
+	basePrototype = new base();
+	// we need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = (function() {
+			var _super = function() {
+					return base.prototype[ prop ].apply( this, arguments );
+				},
+				_superApply = function( args ) {
+					return base.prototype[ prop ].apply( this, args );
+				};
+			return function() {
+				var __super = this._super,
+					__superApply = this._superApply,
+					returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		})();
+	});
+	constructor.prototype = $.widget.extend( basePrototype, {
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	});
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+		});
+		// remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widget_slice.call( arguments, 1 ),
+		inputIndex = 0,
+		inputLength = input.length,
+		key,
+		value;
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string",
+			args = widget_slice.call( arguments, 1 ),
+			returnValue = this;
+
+		if ( isMethodCall ) {
+			this.each(function() {
+				var methodValue,
+					instance = $.data( this, fullName );
+				if ( options === "instance" ) {
+					returnValue = instance;
+					return false;
+				}
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name + " prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+				}
+				methodValue = instance[ options ].apply( instance, args );
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			});
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat(args) );
+			}
+
+			this.each(function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			});
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+	options: {
+		disabled: false,
+
+		// callbacks
+		create: null
+	},
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widget_uuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			});
+			this.document = $( element.style ?
+				// element within the document
+				element.ownerDocument :
+				// element is window or document
+				element.document || element );
+			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+	_getCreateOptions: $.noop,
+	_getCreateEventData: $.noop,
+	_create: $.noop,
+	_init: $.noop,
+
+	destroy: function() {
+		this._destroy();
+		// we can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.unbind( this.eventNamespace )
+			.removeData( this.widgetFullName )
+			// support: jquery <1.6.3
+			// http://bugs.jquery.com/ticket/9413
+			.removeData( $.camelCase( this.widgetFullName ) );
+		this.widget()
+			.unbind( this.eventNamespace )
+			.removeAttr( "aria-disabled" )
+			.removeClass(
+				this.widgetFullName + "-disabled " +
+				"ui-state-disabled" );
+
+		// clean up events and states
+		this.bindings.unbind( this.eventNamespace );
+		this.hoverable.removeClass( "ui-state-hover" );
+		this.focusable.removeClass( "ui-state-focus" );
+	},
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key,
+			parts,
+			curOption,
+			i;
+
+		if ( arguments.length === 0 ) {
+			// don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+	_setOption: function( key, value ) {
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this.widget()
+				.toggleClass( this.widgetFullName + "-disabled", !!value );
+
+			// If the widget is becoming disabled, then nothing is interactive
+			if ( value ) {
+				this.hoverable.removeClass( "ui-state-hover" );
+				this.focusable.removeClass( "ui-state-focus" );
+			}
+		}
+
+		return this;
+	},
+
+	enable: function() {
+		return this._setOptions({ disabled: false });
+	},
+	disable: function() {
+		return this._setOptions({ disabled: true });
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement,
+			instance = this;
+
+		// no suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// no element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+				// allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+							$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
+				eventName = match[1] + instance.eventNamespace,
+				selector = match[2];
+			if ( selector ) {
+				delegateElement.delegate( selector, eventName, handlerProxy );
+			} else {
+				element.bind( eventName, handlerProxy );
+			}
+		});
+	},
+
+	_off: function( element, eventName ) {
+		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.unbind( eventName ).undelegate( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-hover" );
+			}
+		});
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-focus" );
+			}
+		});
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig,
+			callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+		// the original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+		var hasOptions,
+			effectName = !options ?
+				method :
+				options === true || typeof options === "number" ?
+					defaultEffect :
+					options.effect || defaultEffect;
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue(function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			});
+		}
+	};
+});
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+(function() {
+
+$.ui = $.ui || {};
+
+var cachedScrollbarWidth, supportsOffsetFractions,
+	max = Math.max,
+	abs = Math.abs,
+	round = Math.round,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[0];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[0];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[0].clientWidth;
+		}
+
+		div.remove();
+
+		return (cachedScrollbarWidth = w1 - w2);
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[0].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[0] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: withinElement.offset() || { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+
+			// support: jQuery 1.6.x
+			// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
+			width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
+			height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[0].preventDefault ) {
+		// force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+	// clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	});
+
+	// normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each(function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		// if the browser doesn't support fractions, then round for consistent results
+		if ( !supportsOffsetFractions ) {
+			position.left = round( position.left );
+			position.top = round( position.top );
+		}
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				});
+			}
+		});
+
+		if ( options.using ) {
+			// adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	});
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+				// element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
+					position.left += overLeft - newOverRight;
+				// element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+				// element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+			// too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+			// too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+			// adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+				// element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
+					position.top += overTop - newOverBottom;
+				// element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+				// element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+			// too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+			// too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+			// adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+// fraction support test
+(function() {
+	var testElement, testElementParent, testElementStyle, offsetLeft, i,
+		body = document.getElementsByTagName( "body" )[ 0 ],
+		div = document.createElement( "div" );
+
+	//Create a "fake body" for testing based on method used in jQuery.support
+	testElement = document.createElement( body ? "div" : "body" );
+	testElementStyle = {
+		visibility: "hidden",
+		width: 0,
+		height: 0,
+		border: 0,
+		margin: 0,
+		background: "none"
+	};
+	if ( body ) {
+		$.extend( testElementStyle, {
+			position: "absolute",
+			left: "-1000px",
+			top: "-1000px"
+		});
+	}
+	for ( i in testElementStyle ) {
+		testElement.style[ i ] = testElementStyle[ i ];
+	}
+	testElement.appendChild( div );
+	testElementParent = body || document.documentElement;
+	testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+	div.style.cssText = "position: absolute; left: 10.7432222px;";
+
+	offsetLeft = $( div ).offset().left;
+	supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
+
+	testElement.innerHTML = "";
+	testElementParent.removeChild( testElement );
+})();
+
+})();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI Menu 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/menu/
+ */
+
+
+var menu = $.widget( "ui.menu", {
+	version: "1.11.4",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-carat-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left-1 top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.addClass( "ui-menu ui-widget ui-widget-content" )
+			.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
+			.attr({
+				role: this.options.role,
+				tabIndex: 0
+			});
+
+		if ( this.options.disabled ) {
+			this.element
+				.addClass( "ui-state-disabled" )
+				.attr( "aria-disabled", "true" );
+		}
+
+		this._on({
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+				var target = $( event.currentTarget );
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay(function() {
+					if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
+						this.collapseAll( event );
+					}
+				});
+			},
+			keydown: "_keydown"
+		});
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		});
+	},
+
+	_destroy: function() {
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
+				.removeAttr( "role" )
+				.removeAttr( "tabIndex" )
+				.removeAttr( "aria-labelledby" )
+				.removeAttr( "aria-expanded" )
+				.removeAttr( "aria-hidden" )
+				.removeAttr( "aria-disabled" )
+				.removeUniqueId()
+				.show();
+
+		// Destroy menu items
+		this.element.find( ".ui-menu-item" )
+			.removeClass( "ui-menu-item" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-disabled" )
+			.removeUniqueId()
+			.removeClass( "ui-state-hover" )
+			.removeAttr( "tabIndex" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-haspopup" )
+			.children().each( function() {
+				var elem = $( this );
+				if ( elem.data( "ui-menu-submenu-carat" ) ) {
+					elem.remove();
+				}
+			});
+
+		// Destroy menu dividers
+		this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			character = String.fromCharCode( event.keyCode );
+			skip = false;
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay(function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.is( "[aria-haspopup='true']" ) ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		submenus.filter( ":not(.ui-menu)" )
+			.addClass( "ui-menu ui-widget ui-widget-content ui-front" )
+			.hide()
+			.attr({
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			})
+			.each(function() {
+				var menu = $( this ),
+					item = menu.parent(),
+					submenuCarat = $( "<span>" )
+						.addClass( "ui-menu-icon ui-icon " + icon )
+						.data( "ui-menu-submenu-carat", true );
+
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCarat );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			});
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each(function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				item.addClass( "ui-widget-content ui-menu-divider" );
+			}
+		});
+
+		// Don't refresh list items that are already adapted
+		items.not( ".ui-menu-item, .ui-menu-divider" )
+			.addClass( "ui-menu-item" )
+			.uniqueId()
+			.attr({
+				tabIndex: -1,
+				role: this._itemRole()
+			});
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.element.find( ".ui-menu-icon" )
+				.removeClass( this.options.icons.submenu )
+				.addClass( value.submenu );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+		focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		this.active
+			.parent()
+			.closest( ".ui-menu-item" )
+			.addClass( "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay(function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening(nested);
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this.active.removeClass( "ui-state-focus" );
+		this.active = null;
+
+		this._trigger( "blur", event, { item: this.active } );
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the carat icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay(function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend({
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu
+			.find( ".ui-menu" )
+				.hide()
+				.attr( "aria-hidden", "true" )
+				.attr( "aria-expanded", "false" )
+			.end()
+			.find( ".ui-state-active" ).not( ".ui-state-focus" )
+				.removeClass( "ui-state-active" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+				.find( this.options.items )
+				.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay(function() {
+				this.focus( event, newItem );
+			});
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function(character) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+			// Only match on items, not dividers or other content (#10571)
+			.filter( ".ui-menu-item" )
+			.filter(function() {
+				return regex.test( $.trim( $( this ).text() ) );
+			});
+	}
+});
+
+
+/*!
+ * jQuery UI Autocomplete 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/autocomplete/
+ */
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.11.4",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		this.isMultiLine =
+			// Textareas are always multi-line
+			isTextarea ? true :
+			// Inputs are always single-line, even if inside a contentEditable element
+			// IE also treats inputs as contentEditable
+			isInput ? false :
+			// All other element types are determined by whether or not they're contentEditable
+			this.element.prop( "isContentEditable" );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this.element
+			.addClass( "ui-autocomplete-input" )
+			.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		});
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.addClass( "ui-autocomplete ui-front" )
+			.appendTo( this._appendTo() )
+			.menu({
+				// disable ARIA support, the live region takes care of that
+				role: null
+			})
+			.hide()
+			.menu( "instance" );
+
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay(function() {
+					delete this.cancelBlur;
+				});
+
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = this.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					this._delay(function() {
+						var that = this;
+						this.document.one( "mousedown", function( event ) {
+							if ( event.target !== that.element[ 0 ] &&
+									event.target !== menuElement &&
+									!$.contains( menuElement, event.target ) ) {
+								that.close();
+							}
+						});
+					});
+				}
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						});
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
+					this.element.focus();
+					this.previous = previous;
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay(function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					});
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		});
+
+		this.liveRegion = $( "<span>", {
+				role: "status",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element
+			.removeClass( "ui-autocomplete-input" )
+			.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response([]);
+					}
+				});
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay(function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy(function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this.element.removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			});
+		});
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" ).text( item.label ).appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	}
+});
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		});
+	}
+});
+
+// live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+});
+
+var autocomplete = $.ui.autocomplete;
+
+
+
+}));
diff --git a/apidocs/stable/jquery/jquery-ui.min.css b/apidocs/stable/jquery/jquery-ui.min.css
new file mode 100644
index 0000000..94816ca
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
diff --git a/apidocs/stable/jquery/jquery-ui.min.js b/apidocs/stable/jquery/jquery-ui.min.js
new file mode 100644
index 0000000..e1ae5f6
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-ui.min.js
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var s=0,n=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,a=n.call(arguments,1),o=0,r=a.length;r>o;o++)for(i in a[o])s=a[o][i],a[o].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(a){var o="string"==typeof a,r=n.call(arguments,1),h=this;return o?this.each(function(){var i,n=e.data(this,s);return"instance"===a?(h=n,!1):n?e.isFunction(n[a])&&"_"!==a.charAt(0)?(i=n[a].apply(n,r),i!==n&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+a+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+a+"'")}):(r.length&&(a=e.widget.extend.apply(null,[a].concat(r))),this.each(function(){var t=e.data(this,s);t?(t.option(a||{}),t._init&&t._init()):e.data(this,s,new i(a,this))})),h}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=s++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget,function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,N=e.extend({},y),M=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?N.left-=d:"center"===n.my[0]&&(N.left-=d/2),"bottom"===n.my[1]?N.top-=c:"center"===n.my[1]&&(N.top-=c/2),N.left+=M[0],N.top+=M[1],a||(N.left=h(N.left),N.top=h(N.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](N,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+M[0],p[1]+M[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-N.left,i=t+m-d,s=v.top-N.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:N.left,top:N.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(N,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()
+},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete});
diff --git a/apidocs/stable/jquery/jquery-ui.structure.css b/apidocs/stable/jquery/jquery-ui.structure.css
new file mode 100644
index 0000000..1a53ab4
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-ui.structure.css
@@ -0,0 +1,152 @@
+/*!
+ * jQuery UI CSS Framework 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
diff --git a/apidocs/stable/jquery/jquery-ui.structure.min.css b/apidocs/stable/jquery/jquery-ui.structure.min.css
new file mode 100644
index 0000000..7f29f9a
--- /dev/null
+++ b/apidocs/stable/jquery/jquery-ui.structure.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
diff --git a/apidocs/stable/jquery/jszip-utils/dist/jszip-utils-ie.js b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils-ie.js
new file mode 100644
index 0000000..a74cc70
--- /dev/null
+++ b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils-ie.js
@@ -0,0 +1,56 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};/* jshint evil: true, newcap: false */
+/* global IEBinaryToArray_ByteStr, IEBinaryToArray_ByteStr_Last */
+"use strict";
+
+// Adapted from http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest
+var IEBinaryToArray_ByteStr_Script =
+    "<!-- IEBinaryToArray_ByteStr -->\r\n"+
+    "<script type='text/vbscript'>\r\n"+
+    "Function IEBinaryToArray_ByteStr(Binary)\r\n"+
+    "   IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
+    "End Function\r\n"+
+    "Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
+    "   Dim lastIndex\r\n"+
+    "   lastIndex = LenB(Binary)\r\n"+
+    "   if lastIndex mod 2 Then\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
+    "   Else\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
+    "   End If\r\n"+
+    "End Function\r\n"+
+    "</script>\r\n";
+
+// inject VBScript
+document.write(IEBinaryToArray_ByteStr_Script);
+
+global.JSZipUtils._getBinaryFromXHR = function (xhr) {
+    var binary = xhr.responseBody;
+    var byteMapping = {};
+    for ( var i = 0; i < 256; i++ ) {
+        for ( var j = 0; j < 256; j++ ) {
+            byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
+                String.fromCharCode(i) + String.fromCharCode(j);
+        }
+    }
+    var rawBytes = IEBinaryToArray_ByteStr(binary);
+    var lastChr = IEBinaryToArray_ByteStr_Last(binary);
+    return rawBytes.replace(/[\s\S]/g, function( match ) {
+        return byteMapping[match];
+    }) + lastChr;
+};
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+;
diff --git a/apidocs/stable/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils-ie.min.js
new file mode 100644
index 0000000..93d8bc8
--- /dev/null
+++ b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils-ie.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){var a="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},b="<!-- IEBinaryToArray_ByteStr -->\r\n<script type='text/vbscript'>\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n   IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n   Dim lastIndex\r\n   lastIndex = LenB(Binary)\r\n   if lastIndex mod 2 Then\r\n       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n   Else\r\n       IEBinaryToArray_ByteStr_Last = \"\"\r\n   End If\r\nEnd Function\r\n</script>\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);
diff --git a/apidocs/stable/jquery/jszip-utils/dist/jszip-utils.js b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils.js
new file mode 100644
index 0000000..775895e
--- /dev/null
+++ b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils.js
@@ -0,0 +1,118 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+
+var JSZipUtils = {};
+// just use the responseText with xhr1, response with xhr2.
+// The transformation doesn't throw away high-order byte (with responseText)
+// because JSZip handles that case. If not used with JSZip, you may need to
+// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
+JSZipUtils._getBinaryFromXHR = function (xhr) {
+    // for xhr.responseText, the 0xFF mask is applied by JSZip
+    return xhr.response || xhr.responseText;
+};
+
+// taken from jQuery
+function createStandardXHR() {
+    try {
+        return new window.XMLHttpRequest();
+    } catch( e ) {}
+}
+
+function createActiveXHR() {
+    try {
+        return new window.ActiveXObject("Microsoft.XMLHTTP");
+    } catch( e ) {}
+}
+
+// Create the request object
+var createXHR = window.ActiveXObject ?
+    /* Microsoft failed to properly
+     * implement the XMLHttpRequest in IE7 (can't request local files),
+     * so we use the ActiveXObject when it is available
+     * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+     * we need a fallback.
+     */
+    function() {
+    return createStandardXHR() || createActiveXHR();
+} :
+    // For all other browsers, use the standard XMLHttpRequest object
+    createStandardXHR;
+
+
+
+JSZipUtils.getBinaryContent = function(path, callback) {
+    /*
+     * Here is the tricky part : getting the data.
+     * In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
+     * is enough, the result is in the standard xhr.responseText.
+     * cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
+     * In IE <= 9, we must use (the IE only) attribute responseBody
+     * (for binary data, its content is different from responseText).
+     * In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
+     * responseType will work :
+     * http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
+     *
+     * I'd like to use jQuery to avoid this XHR madness, but it doesn't support
+     * the responseType attribute : http://bugs.jquery.com/ticket/11461
+     */
+    try {
+
+        var xhr = createXHR();
+
+        xhr.open('GET', path, true);
+
+        // recent browsers
+        if ("responseType" in xhr) {
+            xhr.responseType = "arraybuffer";
+        }
+
+        // older browser
+        if(xhr.overrideMimeType) {
+            xhr.overrideMimeType("text/plain; charset=x-user-defined");
+        }
+
+        xhr.onreadystatechange = function(evt) {
+            var file, err;
+            // use `xhr` and not `this`... thanks IE
+            if (xhr.readyState === 4) {
+                if (xhr.status === 200 || xhr.status === 0) {
+                    file = null;
+                    err = null;
+                    try {
+                        file = JSZipUtils._getBinaryFromXHR(xhr);
+                    } catch(e) {
+                        err = new Error(e);
+                    }
+                    callback(err, file);
+                } else {
+                    callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
+                }
+            }
+        };
+
+        xhr.send();
+
+    } catch (e) {
+        callback(new Error(e), null);
+    }
+};
+
+// export
+module.exports = JSZipUtils;
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+(1)
+});
+;
diff --git a/apidocs/stable/jquery/jszip-utils/dist/jszip-utils.min.js b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils.min.js
new file mode 100644
index 0000000..78c7f5e
--- /dev/null
+++ b/apidocs/stable/jquery/jszip-utils/dist/jszip-utils.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){"use strict";function c(){try{return new window.XMLHttpRequest}catch(a){}}function d(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}var e={};e._getBinaryFromXHR=function(a){return a.response||a.responseText};var f=window.ActiveXObject?function(){return c()||d()}:c;e.getBinaryContent=function(a,b){try{var c=f();c.open("GET",a,!0),"responseType"in c&&(c.responseType="arraybuffer"),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.onreadystatechange=function(){var d,f;if(4===c.readyState)if(200===c.status||0===c.status){d=null,f=null;try{d=e._getBinaryFromXHR(c)}catch(g){f=new Error(g)}b(f,d)}else b(new Error("Ajax error for "+a+" : "+this.status+" "+this.statusText),null)},c.send()}catch(d){b(new Error(d),null)}},b.exports=e},{}]},{},[1])(1)});
diff --git a/apidocs/stable/jquery/jszip/dist/jszip.js b/apidocs/stable/jquery/jszip/dist/jszip.js
new file mode 100644
index 0000000..02804cd
--- /dev/null
+++ b/apidocs/stable/jquery/jszip/dist/jszip.js
@@ -0,0 +1,11623 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var support = require('./support');
+// private property
+var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+
+// public method for encoding
+exports.encode = function(input) {
+    var output = [];
+    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
+    var i = 0, len = input.length, remainingBytes = len;
+
+    var isArray = utils.getTypeOf(input) !== "string";
+    while (i < input.length) {
+        remainingBytes = len - i;
+
+        if (!isArray) {
+            chr1 = input.charCodeAt(i++);
+            chr2 = i < len ? input.charCodeAt(i++) : 0;
+            chr3 = i < len ? input.charCodeAt(i++) : 0;
+        } else {
+            chr1 = input[i++];
+            chr2 = i < len ? input[i++] : 0;
+            chr3 = i < len ? input[i++] : 0;
+        }
+
+        enc1 = chr1 >> 2;
+        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+        enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;
+        enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;
+
+        output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));
+
+    }
+
+    return output.join("");
+};
+
+// public method for decoding
+exports.decode = function(input) {
+    var chr1, chr2, chr3;
+    var enc1, enc2, enc3, enc4;
+    var i = 0, resultIndex = 0;
+
+    var dataUrlPrefix = "data:";
+
+    if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {
+        // This is a common error: people give a data url
+        // (data:image/png;base64,iVBOR...) with a {base64: true} and
+        // wonders why things don't work.
+        // We can detect that the string input looks like a data url but we
+        // *can't* be sure it is one: removing everything up to the comma would
+        // be too dangerous.
+        throw new Error("Invalid base64 input, it looks like a data url.");
+    }
+
+    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+
+    var totalLength = input.length * 3 / 4;
+    if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if (totalLength % 1 !== 0) {
+        // totalLength is not an integer, the length does not match a valid
+        // base64 content. That can happen if:
+        // - the input is not a base64 content
+        // - the input is *almost* a base64 content, with a extra chars at the
+        //   beginning or at the end
+        // - the input uses a base64 variant (base64url for example)
+        throw new Error("Invalid base64 input, bad content length.");
+    }
+    var output;
+    if (support.uint8array) {
+        output = new Uint8Array(totalLength|0);
+    } else {
+        output = new Array(totalLength|0);
+    }
+
+    while (i < input.length) {
+
+        enc1 = _keyStr.indexOf(input.charAt(i++));
+        enc2 = _keyStr.indexOf(input.charAt(i++));
+        enc3 = _keyStr.indexOf(input.charAt(i++));
+        enc4 = _keyStr.indexOf(input.charAt(i++));
+
+        chr1 = (enc1 << 2) | (enc2 >> 4);
+        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+        chr3 = ((enc3 & 3) << 6) | enc4;
+
+        output[resultIndex++] = chr1;
+
+        if (enc3 !== 64) {
+            output[resultIndex++] = chr2;
+        }
+        if (enc4 !== 64) {
+            output[resultIndex++] = chr3;
+        }
+
+    }
+
+    return output;
+};
+
+},{"./support":30,"./utils":32}],2:[function(require,module,exports){
+'use strict';
+
+var external = require("./external");
+var DataWorker = require('./stream/DataWorker');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+var Crc32Probe = require('./stream/Crc32Probe');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+
+/**
+ * Represent a compressed object, with everything needed to decompress it.
+ * @constructor
+ * @param {number} compressedSize the size of the data compressed.
+ * @param {number} uncompressedSize the size of the data after decompression.
+ * @param {number} crc32 the crc32 of the decompressed file.
+ * @param {object} compression the type of compression, see lib/compressions.js.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.
+ */
+function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) {
+    this.compressedSize = compressedSize;
+    this.uncompressedSize = uncompressedSize;
+    this.crc32 = crc32;
+    this.compression = compression;
+    this.compressedContent = data;
+}
+
+CompressedObject.prototype = {
+    /**
+     * Create a worker to get the uncompressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getContentWorker : function () {
+        var worker = new DataWorker(external.Promise.resolve(this.compressedContent))
+        .pipe(this.compression.uncompressWorker())
+        .pipe(new DataLengthProbe("data_length"));
+
+        var that = this;
+        worker.on("end", function () {
+            if(this.streamInfo['data_length'] !== that.uncompressedSize) {
+                throw new Error("Bug : uncompressed data size mismatch");
+            }
+        });
+        return worker;
+    },
+    /**
+     * Create a worker to get the compressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getCompressedWorker : function () {
+        return new DataWorker(external.Promise.resolve(this.compressedContent))
+        .withStreamInfo("compressedSize", this.compressedSize)
+        .withStreamInfo("uncompressedSize", this.uncompressedSize)
+        .withStreamInfo("crc32", this.crc32)
+        .withStreamInfo("compression", this.compression)
+        ;
+    }
+};
+
+/**
+ * Chain the given worker with other workers to compress the content with the
+ * given compresion.
+ * @param {GenericWorker} uncompressedWorker the worker to pipe.
+ * @param {Object} compression the compression object.
+ * @param {Object} compressionOptions the options to use when compressing.
+ * @return {GenericWorker} the new worker compressing the content.
+ */
+CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {
+    return uncompressedWorker
+    .pipe(new Crc32Probe())
+    .pipe(new DataLengthProbe("uncompressedSize"))
+    .pipe(compression.compressWorker(compressionOptions))
+    .pipe(new DataLengthProbe("compressedSize"))
+    .withStreamInfo("compression", compression);
+};
+
+module.exports = CompressedObject;
+
+},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require("./stream/GenericWorker");
+
+exports.STORE = {
+    magic: "\x00\x00",
+    compressWorker : function (compressionOptions) {
+        return new GenericWorker("STORE compression");
+    },
+    uncompressWorker : function () {
+        return new GenericWorker("STORE decompression");
+    }
+};
+exports.DEFLATE = require('./flate');
+
+},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+
+/**
+ * The following functions come from pako, from pako/lib/zlib/crc32.js
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+    var c, table = [];
+
+    for(var n =0; n < 256; n++){
+        c = n;
+        for(var k =0; k < 8; k++){
+            c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+        }
+        table[n] = c;
+    }
+
+    return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+// That's all for the pako functions.
+
+/**
+ * Compute the crc32 of a string.
+ * This is almost the same as the function crc32, but for strings. Using the
+ * same function for the two use cases leads to horrible performances.
+ * @param {Number} crc the starting value of the crc.
+ * @param {String} str the string to use.
+ * @param {Number} len the length of the string.
+ * @param {Number} pos the starting position for the crc32 computation.
+ * @return {Number} the computed crc32.
+ */
+function crc32str(crc, str, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+module.exports = function crc32wrapper(input, crc) {
+    if (typeof input === "undefined" || !input.length) {
+        return 0;
+    }
+
+    var isArray = utils.getTypeOf(input) !== "string";
+
+    if(isArray) {
+        return crc32(crc|0, input, input.length, 0);
+    } else {
+        return crc32str(crc|0, input, input.length, 0);
+    }
+};
+
+},{"./utils":32}],5:[function(require,module,exports){
+'use strict';
+exports.base64 = false;
+exports.binary = false;
+exports.dir = false;
+exports.createFolders = true;
+exports.date = null;
+exports.compression = null;
+exports.compressionOptions = null;
+exports.comment = null;
+exports.unixPermissions = null;
+exports.dosPermissions = null;
+
+},{}],6:[function(require,module,exports){
+/* global Promise */
+'use strict';
+
+// load the global object first:
+// - it should be better integrated in the system (unhandledRejection in node)
+// - the environment may have a custom Promise implementation (see zone.js)
+var ES6Promise = null;
+if (typeof Promise !== "undefined") {
+    ES6Promise = Promise;
+} else {
+    ES6Promise = require("lie");
+}
+
+/**
+ * Let the user use/change some implementations.
+ */
+module.exports = {
+    Promise: ES6Promise
+};
+
+},{"lie":58}],7:[function(require,module,exports){
+'use strict';
+var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
+
+var pako = require("pako");
+var utils = require("./utils");
+var GenericWorker = require("./stream/GenericWorker");
+
+var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array";
+
+exports.magic = "\x08\x00";
+
+/**
+ * Create a worker that uses pako to inflate/deflate.
+ * @constructor
+ * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate".
+ * @param {Object} options the options to use when (de)compressing.
+ */
+function FlateWorker(action, options) {
+    GenericWorker.call(this, "FlateWorker/" + action);
+
+    this._pako = null;
+    this._pakoAction = action;
+    this._pakoOptions = options;
+    // the `meta` object from the last chunk received
+    // this allow this worker to pass around metadata
+    this.meta = {};
+}
+
+utils.inherits(FlateWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+FlateWorker.prototype.processChunk = function (chunk) {
+    this.meta = chunk.meta;
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false);
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+FlateWorker.prototype.flush = function () {
+    GenericWorker.prototype.flush.call(this);
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push([], true);
+};
+/**
+ * @see GenericWorker.cleanUp
+ */
+FlateWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this._pako = null;
+};
+
+/**
+ * Create the _pako object.
+ * TODO: lazy-loading this object isn't the best solution but it's the
+ * quickest. The best solution is to lazy-load the worker list. See also the
+ * issue #446.
+ */
+FlateWorker.prototype._createPako = function () {
+    this._pako = new pako[this._pakoAction]({
+        raw: true,
+        level: this._pakoOptions.level || -1 // default compression
+    });
+    var self = this;
+    this._pako.onData = function(data) {
+        self.push({
+            data : data,
+            meta : self.meta
+        });
+    };
+};
+
+exports.compressWorker = function (compressionOptions) {
+    return new FlateWorker("Deflate", compressionOptions);
+};
+exports.uncompressWorker = function () {
+    return new FlateWorker("Inflate", {});
+};
+
+},{"./stream/GenericWorker":28,"./utils":32,"pako":59}],8:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+var utf8 = require('../utf8');
+var crc32 = require('../crc32');
+var signature = require('../signature');
+
+/**
+ * Transform an integer into a string in hexadecimal.
+ * @private
+ * @param {number} dec the number to convert.
+ * @param {number} bytes the number of bytes to generate.
+ * @returns {string} the result.
+ */
+var decToHex = function(dec, bytes) {
+    var hex = "", i;
+    for (i = 0; i < bytes; i++) {
+        hex += String.fromCharCode(dec & 0xff);
+        dec = dec >>> 8;
+    }
+    return hex;
+};
+
+/**
+ * Generate the UNIX part of the external file attributes.
+ * @param {Object} unixPermissions the unix permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute :
+ *
+ * TTTTsstrwxrwxrwx0000000000ADVSHR
+ * ^^^^____________________________ file type, see zipinfo.c (UNX_*)
+ *     ^^^_________________________ setuid, setgid, sticky
+ *        ^^^^^^^^^________________ permissions
+ *                 ^^^^^^^^^^______ not used ?
+ *                           ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only
+ */
+var generateUnixExternalFileAttr = function (unixPermissions, isDir) {
+
+    var result = unixPermissions;
+    if (!unixPermissions) {
+        // I can't use octal values in strict mode, hence the hexa.
+        //  040775 => 0x41fd
+        // 0100664 => 0x81b4
+        result = isDir ? 0x41fd : 0x81b4;
+    }
+    return (result & 0xFFFF) << 16;
+};
+
+/**
+ * Generate the DOS part of the external file attributes.
+ * @param {Object} dosPermissions the dos permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * Bit 0     Read-Only
+ * Bit 1     Hidden
+ * Bit 2     System
+ * Bit 3     Volume Label
+ * Bit 4     Directory
+ * Bit 5     Archive
+ */
+var generateDosExternalFileAttr = function (dosPermissions, isDir) {
+
+    // the dir flag is already set for compatibility
+    return (dosPermissions || 0)  & 0x3F;
+};
+
+/**
+ * Generate the various parts used in the construction of the final zip file.
+ * @param {Object} streamInfo the hash with informations about the compressed file.
+ * @param {Boolean} streamedContent is the content streamed ?
+ * @param {Boolean} streamingEnded is the stream finished ?
+ * @param {number} offset the current offset from the start of the zip file.
+ * @param {String} platform let's pretend we are this platform (change platform dependents fields)
+ * @param {Function} encodeFileName the function to encode the file name / comment.
+ * @return {Object} the zip parts.
+ */
+var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) {
+    var file = streamInfo['file'],
+    compression = streamInfo['compression'],
+    useCustomEncoding = encodeFileName !== utf8.utf8encode,
+    encodedFileName = utils.transformTo("string", encodeFileName(file.name)),
+    utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
+    comment = file.comment,
+    encodedComment = utils.transformTo("string", encodeFileName(comment)),
+    utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
+    useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
+    useUTF8ForComment = utfEncodedComment.length !== comment.length,
+    dosTime,
+    dosDate,
+    extraFields = "",
+    unicodePathExtraField = "",
+    unicodeCommentExtraField = "",
+    dir = file.dir,
+    date = file.date;
+
+
+    var dataInfo = {
+        crc32 : 0,
+        compressedSize : 0,
+        uncompressedSize : 0
+    };
+
+    // if the content is streamed, the sizes/crc32 are only available AFTER
+    // the end of the stream.
+    if (!streamedContent || streamingEnded) {
+        dataInfo.crc32 = streamInfo['crc32'];
+        dataInfo.compressedSize = streamInfo['compressedSize'];
+        dataInfo.uncompressedSize = streamInfo['uncompressedSize'];
+    }
+
+    var bitflag = 0;
+    if (streamedContent) {
+        // Bit 3: the sizes/crc32 are set to zero in the local header.
+        // The correct values are put in the data descriptor immediately
+        // following the compressed data.
+        bitflag |= 0x0008;
+    }
+    if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) {
+        // Bit 11: Language encoding flag (EFS).
+        bitflag |= 0x0800;
+    }
+
+
+    var extFileAttr = 0;
+    var versionMadeBy = 0;
+    if (dir) {
+        // dos or unix, we set the dos dir flag
+        extFileAttr |= 0x00010;
+    }
+    if(platform === "UNIX") {
+        versionMadeBy = 0x031E; // UNIX, version 3.0
+        extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir);
+    } else { // DOS or other, fallback to DOS
+        versionMadeBy = 0x0014; // DOS, version 2.0
+        extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir);
+    }
+
+    // date
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html
+
+    dosTime = date.getUTCHours();
+    dosTime = dosTime << 6;
+    dosTime = dosTime | date.getUTCMinutes();
+    dosTime = dosTime << 5;
+    dosTime = dosTime | date.getUTCSeconds() / 2;
+
+    dosDate = date.getUTCFullYear() - 1980;
+    dosDate = dosDate << 4;
+    dosDate = dosDate | (date.getUTCMonth() + 1);
+    dosDate = dosDate << 5;
+    dosDate = dosDate | date.getUTCDate();
+
+    if (useUTF8ForFileName) {
+        // set the unicode path extra field. unzip needs at least one extra
+        // field to correctly handle unicode path, so using the path is as good
+        // as any other information. This could improve the situation with
+        // other archive managers too.
+        // This field is usually used without the utf8 flag, with a non
+        // unicode path in the header (winrar, winzip). This helps (a bit)
+        // with the messy Windows' default compressed folders feature but
+        // breaks on p7zip which doesn't seek the unicode path extra field.
+        // So for now, UTF-8 everywhere !
+        unicodePathExtraField =
+            // Version
+            decToHex(1, 1) +
+            // NameCRC32
+            decToHex(crc32(encodedFileName), 4) +
+            // UnicodeName
+            utfEncodedFileName;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x70" +
+            // size
+            decToHex(unicodePathExtraField.length, 2) +
+            // content
+            unicodePathExtraField;
+    }
+
+    if(useUTF8ForComment) {
+
+        unicodeCommentExtraField =
+            // Version
+            decToHex(1, 1) +
+            // CommentCRC32
+            decToHex(crc32(encodedComment), 4) +
+            // UnicodeName
+            utfEncodedComment;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x63" +
+            // size
+            decToHex(unicodeCommentExtraField.length, 2) +
+            // content
+            unicodeCommentExtraField;
+    }
+
+    var header = "";
+
+    // version needed to extract
+    header += "\x0A\x00";
+    // general purpose bit flag
+    header += decToHex(bitflag, 2);
+    // compression method
+    header += compression.magic;
+    // last mod file time
+    header += decToHex(dosTime, 2);
+    // last mod file date
+    header += decToHex(dosDate, 2);
+    // crc-32
+    header += decToHex(dataInfo.crc32, 4);
+    // compressed size
+    header += decToHex(dataInfo.compressedSize, 4);
+    // uncompressed size
+    header += decToHex(dataInfo.uncompressedSize, 4);
+    // file name length
+    header += decToHex(encodedFileName.length, 2);
+    // extra field length
+    header += decToHex(extraFields.length, 2);
+
+
+    var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields;
+
+    var dirRecord = signature.CENTRAL_FILE_HEADER +
+        // version made by (00: DOS)
+        decToHex(versionMadeBy, 2) +
+        // file header (common to file and central directory)
+        header +
+        // file comment length
+        decToHex(encodedComment.length, 2) +
+        // disk number start
+        "\x00\x00" +
+        // internal file attributes TODO
+        "\x00\x00" +
+        // external file attributes
+        decToHex(extFileAttr, 4) +
+        // relative offset of local header
+        decToHex(offset, 4) +
+        // file name
+        encodedFileName +
+        // extra field
+        extraFields +
+        // file comment
+        encodedComment;
+
+    return {
+        fileRecord: fileRecord,
+        dirRecord: dirRecord
+    };
+};
+
+/**
+ * Generate the EOCD record.
+ * @param {Number} entriesCount the number of entries in the zip file.
+ * @param {Number} centralDirLength the length (in bytes) of the central dir.
+ * @param {Number} localDirLength the length (in bytes) of the local dir.
+ * @param {String} comment the zip file comment as a binary string.
+ * @param {Function} encodeFileName the function to encode the comment.
+ * @return {String} the EOCD record.
+ */
+var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) {
+    var dirEnd = "";
+    var encodedComment = utils.transformTo("string", encodeFileName(comment));
+
+    // end of central dir signature
+    dirEnd = signature.CENTRAL_DIRECTORY_END +
+        // number of this disk
+        "\x00\x00" +
+        // number of the disk with the start of the central directory
+        "\x00\x00" +
+        // total number of entries in the central directory on this disk
+        decToHex(entriesCount, 2) +
+        // total number of entries in the central directory
+        decToHex(entriesCount, 2) +
+        // size of the central directory   4 bytes
+        decToHex(centralDirLength, 4) +
+        // offset of start of central directory with respect to the starting disk number
+        decToHex(localDirLength, 4) +
+        // .ZIP file comment length
+        decToHex(encodedComment.length, 2) +
+        // .ZIP file comment
+        encodedComment;
+
+    return dirEnd;
+};
+
+/**
+ * Generate data descriptors for a file entry.
+ * @param {Object} streamInfo the hash generated by a worker, containing informations
+ * on the file entry.
+ * @return {String} the data descriptors.
+ */
+var generateDataDescriptors = function (streamInfo) {
+    var descriptor = "";
+    descriptor = signature.DATA_DESCRIPTOR +
+        // crc-32                          4 bytes
+        decToHex(streamInfo['crc32'], 4) +
+        // compressed size                 4 bytes
+        decToHex(streamInfo['compressedSize'], 4) +
+        // uncompressed size               4 bytes
+        decToHex(streamInfo['uncompressedSize'], 4);
+
+    return descriptor;
+};
+
+
+/**
+ * A worker to concatenate other workers to create a zip file.
+ * @param {Boolean} streamFiles `true` to stream the content of the files,
+ * `false` to accumulate it.
+ * @param {String} comment the comment to use.
+ * @param {String} platform the platform to use, "UNIX" or "DOS".
+ * @param {Function} encodeFileName the function to encode file names and comments.
+ */
+function ZipFileWorker(streamFiles, comment, platform, encodeFileName) {
+    GenericWorker.call(this, "ZipFileWorker");
+    // The number of bytes written so far. This doesn't count accumulated chunks.
+    this.bytesWritten = 0;
+    // The comment of the zip file
+    this.zipComment = comment;
+    // The platform "generating" the zip file.
+    this.zipPlatform = platform;
+    // the function to encode file names and comments.
+    this.encodeFileName = encodeFileName;
+    // Should we stream the content of the files ?
+    this.streamFiles = streamFiles;
+    // If `streamFiles` is false, we will need to accumulate the content of the
+    // files to calculate sizes / crc32 (and write them *before* the content).
+    // This boolean indicates if we are accumulating chunks (it will change a lot
+    // during the lifetime of this worker).
+    this.accumulate = false;
+    // The buffer receiving chunks when accumulating content.
+    this.contentBuffer = [];
+    // The list of generated directory records.
+    this.dirRecords = [];
+    // The offset (in bytes) from the beginning of the zip file for the current source.
+    this.currentSourceOffset = 0;
+    // The total number of entries in this zip file.
+    this.entriesCount = 0;
+    // the name of the file currently being added, null when handling the end of the zip file.
+    // Used for the emited metadata.
+    this.currentFile = null;
+
+
+
+    this._sources = [];
+}
+utils.inherits(ZipFileWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.push
+ */
+ZipFileWorker.prototype.push = function (chunk) {
+
+    var currentFilePercent = chunk.meta.percent || 0;
+    var entriesCount = this.entriesCount;
+    var remainingFiles = this._sources.length;
+
+    if(this.accumulate) {
+        this.contentBuffer.push(chunk);
+    } else {
+        this.bytesWritten += chunk.data.length;
+
+        GenericWorker.prototype.push.call(this, {
+            data : chunk.data,
+            meta : {
+                currentFile : this.currentFile,
+                percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100
+            }
+        });
+    }
+};
+
+/**
+ * The worker started a new source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the new source.
+ */
+ZipFileWorker.prototype.openedSource = function (streamInfo) {
+    this.currentSourceOffset = this.bytesWritten;
+    this.currentFile = streamInfo['file'].name;
+
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+
+    // don't stream folders (because they don't have any content)
+    if(streamedContent) {
+        var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+    } else {
+        // we need to wait for the whole file before pushing anything
+        this.accumulate = true;
+    }
+};
+
+/**
+ * The worker finished a source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the finished source.
+ */
+ZipFileWorker.prototype.closedSource = function (streamInfo) {
+    this.accumulate = false;
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+    var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+
+    this.dirRecords.push(record.dirRecord);
+    if(streamedContent) {
+        // after the streamed file, we put data descriptors
+        this.push({
+            data : generateDataDescriptors(streamInfo),
+            meta : {percent:100}
+        });
+    } else {
+        // the content wasn't streamed, we need to push everything now
+        // first the file record, then the content
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+        while(this.contentBuffer.length) {
+            this.push(this.contentBuffer.shift());
+        }
+    }
+    this.currentFile = null;
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+ZipFileWorker.prototype.flush = function () {
+
+    var localDirLength = this.bytesWritten;
+    for(var i = 0; i < this.dirRecords.length; i++) {
+        this.push({
+            data : this.dirRecords[i],
+            meta : {percent:100}
+        });
+    }
+    var centralDirLength = this.bytesWritten - localDirLength;
+
+    var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName);
+
+    this.push({
+        data : dirEnd,
+        meta : {percent:100}
+    });
+};
+
+/**
+ * Prepare the next source to be read.
+ */
+ZipFileWorker.prototype.prepareNextSource = function () {
+    this.previous = this._sources.shift();
+    this.openedSource(this.previous.streamInfo);
+    if (this.isPaused) {
+        this.previous.pause();
+    } else {
+        this.previous.resume();
+    }
+};
+
+/**
+ * @see GenericWorker.registerPrevious
+ */
+ZipFileWorker.prototype.registerPrevious = function (previous) {
+    this._sources.push(previous);
+    var self = this;
+
+    previous.on('data', function (chunk) {
+        self.processChunk(chunk);
+    });
+    previous.on('end', function () {
+        self.closedSource(self.previous.streamInfo);
+        if(self._sources.length) {
+            self.prepareNextSource();
+        } else {
+            self.end();
+        }
+    });
+    previous.on('error', function (e) {
+        self.error(e);
+    });
+    return this;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+ZipFileWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this.previous && this._sources.length) {
+        this.prepareNextSource();
+        return true;
+    }
+    if (!this.previous && !this._sources.length && !this.generatedError) {
+        this.end();
+        return true;
+    }
+};
+
+/**
+ * @see GenericWorker.error
+ */
+ZipFileWorker.prototype.error = function (e) {
+    var sources = this._sources;
+    if(!GenericWorker.prototype.error.call(this, e)) {
+        return false;
+    }
+    for(var i = 0; i < sources.length; i++) {
+        try {
+            sources[i].error(e);
+        } catch(e) {
+            // the `error` exploded, nothing to do
+        }
+    }
+    return true;
+};
+
+/**
+ * @see GenericWorker.lock
+ */
+ZipFileWorker.prototype.lock = function () {
+    GenericWorker.prototype.lock.call(this);
+    var sources = this._sources;
+    for(var i = 0; i < sources.length; i++) {
+        sources[i].lock();
+    }
+};
+
+module.exports = ZipFileWorker;
+
+},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){
+'use strict';
+
+var compressions = require('../compressions');
+var ZipFileWorker = require('./ZipFileWorker');
+
+/**
+ * Find the compression to use.
+ * @param {String} fileCompression the compression defined at the file level, if any.
+ * @param {String} zipCompression the compression defined at the load() level.
+ * @return {Object} the compression object to use.
+ */
+var getCompression = function (fileCompression, zipCompression) {
+
+    var compressionName = fileCompression || zipCompression;
+    var compression = compressions[compressionName];
+    if (!compression) {
+        throw new Error(compressionName + " is not a valid compression method !");
+    }
+    return compression;
+};
+
+/**
+ * Create a worker to generate a zip file.
+ * @param {JSZip} zip the JSZip instance at the right root level.
+ * @param {Object} options to generate the zip file.
+ * @param {String} comment the comment to use.
+ */
+exports.generateWorker = function (zip, options, comment) {
+
+    var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName);
+    var entriesCount = 0;
+    try {
+
+        zip.forEach(function (relativePath, file) {
+            entriesCount++;
+            var compression = getCompression(file.options.compression, options.compression);
+            var compressionOptions = file.options.compressionOptions || options.compressionOptions || {};
+            var dir = file.dir, date = file.date;
+
+            file._compressWorker(compression, compressionOptions)
+            .withStreamInfo("file", {
+                name : relativePath,
+                dir : dir,
+                date : date,
+                comment : file.comment || "",
+                unixPermissions : file.unixPermissions,
+                dosPermissions : file.dosPermissions
+            })
+            .pipe(zipFileWorker);
+        });
+        zipFileWorker.entriesCount = entriesCount;
+    } catch (e) {
+        zipFileWorker.error(e);
+    }
+
+    return zipFileWorker;
+};
+
+},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){
+'use strict';
+
+/**
+ * Representation a of zip file in js
+ * @constructor
+ */
+function JSZip() {
+    // if this constructor is used without `new`, it adds `new` before itself:
+    if(!(this instanceof JSZip)) {
+        return new JSZip();
+    }
+
+    if(arguments.length) {
+        throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
+    }
+
+    // object containing the files :
+    // {
+    //   "folder/" : {...},
+    //   "folder/data.txt" : {...}
+    // }
+    this.files = {};
+
+    this.comment = null;
+
+    // Where we are in the hierarchy
+    this.root = "";
+    this.clone = function() {
+        var newObj = new JSZip();
+        for (var i in this) {
+            if (typeof this[i] !== "function") {
+                newObj[i] = this[i];
+            }
+        }
+        return newObj;
+    };
+}
+JSZip.prototype = require('./object');
+JSZip.prototype.loadAsync = require('./load');
+JSZip.support = require('./support');
+JSZip.defaults = require('./defaults');
+
+// TODO find a better way to handle this version,
+// a require('package.json').version doesn't work with webpack, see #327
+JSZip.version = "3.1.5";
+
+JSZip.loadAsync = function (content, options) {
+    return new JSZip().loadAsync(content, options);
+};
+
+JSZip.external = require("./external");
+module.exports = JSZip;
+
+},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var external = require("./external");
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var ZipEntries = require('./zipEntries');
+var Crc32Probe = require('./stream/Crc32Probe');
+var nodejsUtils = require("./nodejsUtils");
+
+/**
+ * Check the CRC32 of an entry.
+ * @param {ZipEntry} zipEntry the zip entry to check.
+ * @return {Promise} the result.
+ */
+function checkEntryCRC32(zipEntry) {
+    return new external.Promise(function (resolve, reject) {
+        var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe());
+        worker.on("error", function (e) {
+            reject(e);
+        })
+        .on("end", function () {
+            if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {
+                reject(new Error("Corrupted zip : CRC32 mismatch"));
+            } else {
+                resolve();
+            }
+        })
+        .resume();
+    });
+}
+
+module.exports = function(data, options) {
+    var zip = this;
+    options = utils.extend(options || {}, {
+        base64: false,
+        checkCRC32: false,
+        optimizedBinaryString: false,
+        createFolders: false,
+        decodeFileName: utf8.utf8decode
+    });
+
+    if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file."));
+    }
+
+    return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64)
+    .then(function(data) {
+        var zipEntries = new ZipEntries(options);
+        zipEntries.load(data);
+        return zipEntries;
+    }).then(function checkCRC32(zipEntries) {
+        var promises = [external.Promise.resolve(zipEntries)];
+        var files = zipEntries.files;
+        if (options.checkCRC32) {
+            for (var i = 0; i < files.length; i++) {
+                promises.push(checkEntryCRC32(files[i]));
+            }
+        }
+        return external.Promise.all(promises);
+    }).then(function addFiles(results) {
+        var zipEntries = results.shift();
+        var files = zipEntries.files;
+        for (var i = 0; i < files.length; i++) {
+            var input = files[i];
+            zip.file(input.fileNameStr, input.decompressed, {
+                binary: true,
+                optimizedBinaryString: true,
+                date: input.date,
+                dir: input.dir,
+                comment : input.fileCommentStr.length ? input.fileCommentStr : null,
+                unixPermissions : input.unixPermissions,
+                dosPermissions : input.dosPermissions,
+                createFolders: options.createFolders
+            });
+        }
+        if (zipEntries.zipComment.length) {
+            zip.comment = zipEntries.zipComment;
+        }
+
+        return zip;
+    });
+};
+
+},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){
+"use strict";
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+
+/**
+ * A worker that use a nodejs stream as source.
+ * @constructor
+ * @param {String} filename the name of the file entry for this stream.
+ * @param {Readable} stream the nodejs stream.
+ */
+function NodejsStreamInputAdapter(filename, stream) {
+    GenericWorker.call(this, "Nodejs stream input adapter for " + filename);
+    this._upstreamEnded = false;
+    this._bindStream(stream);
+}
+
+utils.inherits(NodejsStreamInputAdapter, GenericWorker);
+
+/**
+ * Prepare the stream and bind the callbacks on it.
+ * Do this ASAP on node 0.10 ! A lazy binding doesn't always work.
+ * @param {Stream} stream the nodejs stream to use.
+ */
+NodejsStreamInputAdapter.prototype._bindStream = function (stream) {
+    var self = this;
+    this._stream = stream;
+    stream.pause();
+    stream
+    .on("data", function (chunk) {
+        self.push({
+            data: chunk,
+            meta : {
+                percent : 0
+            }
+        });
+    })
+    .on("error", function (e) {
+        if(self.isPaused) {
+            this.generatedError = e;
+        } else {
+            self.error(e);
+        }
+    })
+    .on("end", function () {
+        if(self.isPaused) {
+            self._upstreamEnded = true;
+        } else {
+            self.end();
+        }
+    });
+};
+NodejsStreamInputAdapter.prototype.pause = function () {
+    if(!GenericWorker.prototype.pause.call(this)) {
+        return false;
+    }
+    this._stream.pause();
+    return true;
+};
+NodejsStreamInputAdapter.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if(this._upstreamEnded) {
+        this.end();
+    } else {
+        this._stream.resume();
+    }
+
+    return true;
+};
+
+module.exports = NodejsStreamInputAdapter;
+
+},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){
+'use strict';
+
+var Readable = require('readable-stream').Readable;
+
+var utils = require('../utils');
+utils.inherits(NodejsStreamOutputAdapter, Readable);
+
+/**
+* A nodejs stream using a worker as source.
+* @see the SourceWrapper in http://nodejs.org/api/stream.html
+* @constructor
+* @param {StreamHelper} helper the helper wrapping the worker
+* @param {Object} options the nodejs stream options
+* @param {Function} updateCb the update callback.
+*/
+function NodejsStreamOutputAdapter(helper, options, updateCb) {
+    Readable.call(this, options);
+    this._helper = helper;
+
+    var self = this;
+    helper.on("data", function (data, meta) {
+        if (!self.push(data)) {
+            self._helper.pause();
+        }
+        if(updateCb) {
+            updateCb(meta);
+        }
+    })
+    .on("error", function(e) {
+        self.emit('error', e);
+    })
+    .on("end", function () {
+        self.push(null);
+    });
+}
+
+
+NodejsStreamOutputAdapter.prototype._read = function() {
+    this._helper.resume();
+};
+
+module.exports = NodejsStreamOutputAdapter;
+
+},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){
+'use strict';
+
+module.exports = {
+    /**
+     * True if this is running in Nodejs, will be undefined in a browser.
+     * In a browser, browserify won't include this file and the whole module
+     * will be resolved an empty object.
+     */
+    isNode : typeof Buffer !== "undefined",
+    /**
+     * Create a new nodejs Buffer from an existing content.
+     * @param {Object} data the data to pass to the constructor.
+     * @param {String} encoding the encoding to use.
+     * @return {Buffer} a new Buffer.
+     */
+    newBufferFrom: function(data, encoding) {
+        // XXX We can't use `Buffer.from` which comes from `Uint8Array.from`
+        // in nodejs v4 (< v.4.5). It's not the expected implementation (and
+        // has a different signature).
+        // see https://github.com/nodejs/node/issues/8053
+        // A condition on nodejs' version won't solve the issue as we don't
+        // control the Buffer polyfills that may or may not be used.
+        return new Buffer(data, encoding);
+    },
+    /**
+     * Create a new nodejs Buffer with the specified size.
+     * @param {Integer} size the size of the buffer.
+     * @return {Buffer} a new Buffer.
+     */
+    allocBuffer: function (size) {
+        if (Buffer.alloc) {
+            return Buffer.alloc(size);
+        } else {
+            return new Buffer(size);
+        }
+    },
+    /**
+     * Find out if an object is a Buffer.
+     * @param {Object} b the object to test.
+     * @return {Boolean} true if the object is a Buffer, false otherwise.
+     */
+    isBuffer : function(b){
+        return Buffer.isBuffer(b);
+    },
+
+    isStream : function (obj) {
+        return obj &&
+            typeof obj.on === "function" &&
+            typeof obj.pause === "function" &&
+            typeof obj.resume === "function";
+    }
+};
+
+},{}],15:[function(require,module,exports){
+'use strict';
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var GenericWorker = require('./stream/GenericWorker');
+var StreamHelper = require('./stream/StreamHelper');
+var defaults = require('./defaults');
+var CompressedObject = require('./compressedObject');
+var ZipObject = require('./zipObject');
+var generate = require("./generate");
+var nodejsUtils = require("./nodejsUtils");
+var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter");
+
+
+/**
+ * Add a file in the current folder.
+ * @private
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file
+ * @param {Object} originalOptions the options of the file
+ * @return {Object} the new file.
+ */
+var fileAdd = function(name, data, originalOptions) {
+    // be sure sub folders exist
+    var dataType = utils.getTypeOf(data),
+        parent;
+
+
+    /*
+     * Correct options.
+     */
+
+    var o = utils.extend(originalOptions || {}, defaults);
+    o.date = o.date || new Date();
+    if (o.compression !== null) {
+        o.compression = o.compression.toUpperCase();
+    }
+
+    if (typeof o.unixPermissions === "string") {
+        o.unixPermissions = parseInt(o.unixPermissions, 8);
+    }
+
+    // UNX_IFDIR  0040000 see zipinfo.c
+    if (o.unixPermissions && (o.unixPermissions & 0x4000)) {
+        o.dir = true;
+    }
+    // Bit 4    Directory
+    if (o.dosPermissions && (o.dosPermissions & 0x0010)) {
+        o.dir = true;
+    }
+
+    if (o.dir) {
+        name = forceTrailingSlash(name);
+    }
+    if (o.createFolders && (parent = parentFolder(name))) {
+        folderAdd.call(this, parent, true);
+    }
+
+    var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false;
+    if (!originalOptions || typeof originalOptions.binary === "undefined") {
+        o.binary = !isUnicodeString;
+    }
+
+
+    var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0;
+
+    if (isCompressedEmpty || o.dir || !data || data.length === 0) {
+        o.base64 = false;
+        o.binary = true;
+        data = "";
+        o.compression = "STORE";
+        dataType = "string";
+    }
+
+    /*
+     * Convert content to fit.
+     */
+
+    var zipObjectContent = null;
+    if (data instanceof CompressedObject || data instanceof GenericWorker) {
+        zipObjectContent = data;
+    } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        zipObjectContent = new NodejsStreamInputAdapter(name, data);
+    } else {
+        zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64);
+    }
+
+    var object = new ZipObject(name, zipObjectContent, o);
+    this.files[name] = object;
+    /*
+    TODO: we can't throw an exception because we have async promises
+    (we can have a promise of a Date() for example) but returning a
+    promise is useless because file(name, data) returns the JSZip
+    object for chaining. Should we break that to allow the user
+    to catch the error ?
+
+    return external.Promise.resolve(zipObjectContent)
+    .then(function () {
+        return object;
+    });
+    */
+};
+
+/**
+ * Find the parent folder of the path.
+ * @private
+ * @param {string} path the path to use
+ * @return {string} the parent folder, or ""
+ */
+var parentFolder = function (path) {
+    if (path.slice(-1) === '/') {
+        path = path.substring(0, path.length - 1);
+    }
+    var lastSlash = path.lastIndexOf('/');
+    return (lastSlash > 0) ? path.substring(0, lastSlash) : "";
+};
+
+/**
+ * Returns the path with a slash at the end.
+ * @private
+ * @param {String} path the path to check.
+ * @return {String} the path with a trailing slash.
+ */
+var forceTrailingSlash = function(path) {
+    // Check the name ends with a /
+    if (path.slice(-1) !== "/") {
+        path += "/"; // IE doesn't like substr(-1)
+    }
+    return path;
+};
+
+/**
+ * Add a (sub) folder in the current folder.
+ * @private
+ * @param {string} name the folder's name
+ * @param {boolean=} [createFolders] If true, automatically create sub
+ *  folders. Defaults to false.
+ * @return {Object} the new folder.
+ */
+var folderAdd = function(name, createFolders) {
+    createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders;
+
+    name = forceTrailingSlash(name);
+
+    // Does this folder already exist?
+    if (!this.files[name]) {
+        fileAdd.call(this, name, null, {
+            dir: true,
+            createFolders: createFolders
+        });
+    }
+    return this.files[name];
+};
+
+/**
+* Cross-window, cross-Node-context regular expression detection
+* @param  {Object}  object Anything
+* @return {Boolean}        true if the object is a regular expression,
+* false otherwise
+*/
+function isRegExp(object) {
+    return Object.prototype.toString.call(object) === "[object RegExp]";
+}
+
+// return the actual prototype of JSZip
+var out = {
+    /**
+     * @see loadAsync
+     */
+    load: function() {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+
+    /**
+     * Call a callback function for each entry at this folder level.
+     * @param {Function} cb the callback function:
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     */
+    forEach: function(cb) {
+        var filename, relativePath, file;
+        for (filename in this.files) {
+            if (!this.files.hasOwnProperty(filename)) {
+                continue;
+            }
+            file = this.files[filename];
+            relativePath = filename.slice(this.root.length, filename.length);
+            if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root
+                cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...
+            }
+        }
+    },
+
+    /**
+     * Filter nested files/folders with the specified function.
+     * @param {Function} search the predicate to use :
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     * @return {Array} An array of matching elements.
+     */
+    filter: function(search) {
+        var result = [];
+        this.forEach(function (relativePath, entry) {
+            if (search(relativePath, entry)) { // the file matches the function
+                result.push(entry);
+            }
+
+        });
+        return result;
+    },
+
+    /**
+     * Add a file to the zip file, or search a file.
+     * @param   {string|RegExp} name The name of the file to add (if data is defined),
+     * the name of the file to find (if no data) or a regex to match files.
+     * @param   {String|ArrayBuffer|Uint8Array|Buffer} data  The file data, either raw or base64 encoded
+     * @param   {Object} o     File options
+     * @return  {JSZip|Object|Array} this JSZip object (when adding a file),
+     * a file (when searching by string) or an array of files (when searching by regex).
+     */
+    file: function(name, data, o) {
+        if (arguments.length === 1) {
+            if (isRegExp(name)) {
+                var regexp = name;
+                return this.filter(function(relativePath, file) {
+                    return !file.dir && regexp.test(relativePath);
+                });
+            }
+            else { // text
+                var obj = this.files[this.root + name];
+                if (obj && !obj.dir) {
+                    return obj;
+                } else {
+                    return null;
+                }
+            }
+        }
+        else { // more than one argument : we have data !
+            name = this.root + name;
+            fileAdd.call(this, name, data, o);
+        }
+        return this;
+    },
+
+    /**
+     * Add a directory to the zip file, or search.
+     * @param   {String|RegExp} arg The name of the directory to add, or a regex to search folders.
+     * @return  {JSZip} an object with the new directory as the root, or an array containing matching folders.
+     */
+    folder: function(arg) {
+        if (!arg) {
+            return this;
+        }
+
+        if (isRegExp(arg)) {
+            return this.filter(function(relativePath, file) {
+                return file.dir && arg.test(relativePath);
+            });
+        }
+
+        // else, name is a new folder
+        var name = this.root + arg;
+        var newFolder = folderAdd.call(this, name);
+
+        // Allow chaining by returning a new object with this folder as the root
+        var ret = this.clone();
+        ret.root = newFolder.name;
+        return ret;
+    },
+
+    /**
+     * Delete a file, or a directory and all sub-files, from the zip
+     * @param {string} name the name of the file to delete
+     * @return {JSZip} this JSZip object
+     */
+    remove: function(name) {
+        name = this.root + name;
+        var file = this.files[name];
+        if (!file) {
+            // Look for any folders
+            if (name.slice(-1) !== "/") {
+                name += "/";
+            }
+            file = this.files[name];
+        }
+
+        if (file && !file.dir) {
+            // file
+            delete this.files[name];
+        } else {
+            // maybe a folder, delete recursively
+            var kids = this.filter(function(relativePath, file) {
+                return file.name.slice(0, name.length) === name;
+            });
+            for (var i = 0; i < kids.length; i++) {
+                delete this.files[kids[i].name];
+            }
+        }
+
+        return this;
+    },
+
+    /**
+     * Generate the complete zip file
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file
+     */
+    generate: function(options) {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+    /**
+     * Generate the complete zip file as an internal stream.
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {StreamHelper} the streamed zip file.
+     */
+    generateInternalStream: function(options) {
+      var worker, opts = {};
+      try {
+          opts = utils.extend(options || {}, {
+              streamFiles: false,
+              compression: "STORE",
+              compressionOptions : null,
+              type: "",
+              platform: "DOS",
+              comment: null,
+              mimeType: 'application/zip',
+              encodeFileName: utf8.utf8encode
+          });
+
+          opts.type = opts.type.toLowerCase();
+          opts.compression = opts.compression.toUpperCase();
+
+          // "binarystring" is prefered but the internals use "string".
+          if(opts.type === "binarystring") {
+            opts.type = "string";
+          }
+
+          if (!opts.type) {
+            throw new Error("No output type specified.");
+          }
+
+          utils.checkSupport(opts.type);
+
+          // accept nodejs `process.platform`
+          if(
+              opts.platform === 'darwin' ||
+              opts.platform === 'freebsd' ||
+              opts.platform === 'linux' ||
+              opts.platform === 'sunos'
+          ) {
+              opts.platform = "UNIX";
+          }
+          if (opts.platform === 'win32') {
+              opts.platform = "DOS";
+          }
+
+          var comment = opts.comment || this.comment || "";
+          worker = generate.generateWorker(this, opts, comment);
+      } catch (e) {
+        worker = new GenericWorker("error");
+        worker.error(e);
+      }
+      return new StreamHelper(worker, opts.type || "string", opts.mimeType);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateAsync: function(options, onUpdate) {
+        return this.generateInternalStream(options).accumulate(onUpdate);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateNodeStream: function(options, onUpdate) {
+        options = options || {};
+        if (!options.type) {
+            options.type = "nodebuffer";
+        }
+        return this.generateInternalStream(options).toNodejsStream(onUpdate);
+    }
+};
+module.exports = out;
+
+},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){
+/*
+ * This file is used by module bundlers (browserify/webpack/etc) when
+ * including a stream implementation. We use "readable-stream" to get a
+ * consistent behavior between nodejs versions but bundlers often have a shim
+ * for "stream". Using this shim greatly improve the compatibility and greatly
+ * reduce the final size of the bundle (only one stream implementation, not
+ * two).
+ */
+module.exports = require("stream");
+
+},{"stream":undefined}],17:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function ArrayReader(data) {
+    DataReader.call(this, data);
+	for(var i = 0; i < this.data.length; i++) {
+		data[i] = data[i] & 0xFF;
+	}
+}
+utils.inherits(ArrayReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+ArrayReader.prototype.byteAt = function(i) {
+    return this.data[this.zero + i];
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+ArrayReader.prototype.lastIndexOfSignature = function(sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3);
+    for (var i = this.length - 4; i >= 0; --i) {
+        if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {
+            return i - this.zero;
+        }
+    }
+
+    return -1;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+ArrayReader.prototype.readAndCheckSignature = function (sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3),
+        data = this.readData(4);
+    return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];
+};
+/**
+ * @see DataReader.readData
+ */
+ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        return [];
+    }
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = ArrayReader;
+
+},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){
+'use strict';
+var utils = require('../utils');
+
+function DataReader(data) {
+    this.data = data; // type : see implementation
+    this.length = data.length;
+    this.index = 0;
+    this.zero = 0;
+}
+DataReader.prototype = {
+    /**
+     * Check that the offset will not go too far.
+     * @param {string} offset the additional offset to check.
+     * @throws {Error} an Error if the offset is out of bounds.
+     */
+    checkOffset: function(offset) {
+        this.checkIndex(this.index + offset);
+    },
+    /**
+     * Check that the specified index will not be too far.
+     * @param {string} newIndex the index to check.
+     * @throws {Error} an Error if the index is out of bounds.
+     */
+    checkIndex: function(newIndex) {
+        if (this.length < this.zero + newIndex || newIndex < 0) {
+            throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?");
+        }
+    },
+    /**
+     * Change the index.
+     * @param {number} newIndex The new index.
+     * @throws {Error} if the new index is out of the data.
+     */
+    setIndex: function(newIndex) {
+        this.checkIndex(newIndex);
+        this.index = newIndex;
+    },
+    /**
+     * Skip the next n bytes.
+     * @param {number} n the number of bytes to skip.
+     * @throws {Error} if the new index is out of the data.
+     */
+    skip: function(n) {
+        this.setIndex(this.index + n);
+    },
+    /**
+     * Get the byte at the specified index.
+     * @param {number} i the index to use.
+     * @return {number} a byte.
+     */
+    byteAt: function(i) {
+        // see implementations
+    },
+    /**
+     * Get the next number with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {number} the corresponding number.
+     */
+    readInt: function(size) {
+        var result = 0,
+            i;
+        this.checkOffset(size);
+        for (i = this.index + size - 1; i >= this.index; i--) {
+            result = (result << 8) + this.byteAt(i);
+        }
+        this.index += size;
+        return result;
+    },
+    /**
+     * Get the next string with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {string} the corresponding string.
+     */
+    readString: function(size) {
+        return utils.transformTo("string", this.readData(size));
+    },
+    /**
+     * Get raw data without conversion, <size> bytes.
+     * @param {number} size the number of bytes to read.
+     * @return {Object} the raw data, implementation specific.
+     */
+    readData: function(size) {
+        // see implementations
+    },
+    /**
+     * Find the last occurence of a zip signature (4 bytes).
+     * @param {string} sig the signature to find.
+     * @return {number} the index of the last occurence, -1 if not found.
+     */
+    lastIndexOfSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Read the signature (4 bytes) at the current position and compare it with sig.
+     * @param {string} sig the expected signature
+     * @return {boolean} true if the signature matches, false otherwise.
+     */
+    readAndCheckSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Get the next date.
+     * @return {Date} the date.
+     */
+    readDate: function() {
+        var dostime = this.readInt(4);
+        return new Date(Date.UTC(
+        ((dostime >> 25) & 0x7f) + 1980, // year
+        ((dostime >> 21) & 0x0f) - 1, // month
+        (dostime >> 16) & 0x1f, // day
+        (dostime >> 11) & 0x1f, // hour
+        (dostime >> 5) & 0x3f, // minute
+        (dostime & 0x1f) << 1)); // second
+    }
+};
+module.exports = DataReader;
+
+},{"../utils":32}],19:[function(require,module,exports){
+'use strict';
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+var utils = require('../utils');
+
+function NodeBufferReader(data) {
+    Uint8ArrayReader.call(this, data);
+}
+utils.inherits(NodeBufferReader, Uint8ArrayReader);
+
+/**
+ * @see DataReader.readData
+ */
+NodeBufferReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = NodeBufferReader;
+
+},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function StringReader(data) {
+    DataReader.call(this, data);
+}
+utils.inherits(StringReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+StringReader.prototype.byteAt = function(i) {
+    return this.data.charCodeAt(this.zero + i);
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+StringReader.prototype.lastIndexOfSignature = function(sig) {
+    return this.data.lastIndexOf(sig) - this.zero;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+StringReader.prototype.readAndCheckSignature = function (sig) {
+    var data = this.readData(4);
+    return sig === data;
+};
+/**
+ * @see DataReader.readData
+ */
+StringReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    // this will work because the constructor applied the "& 0xff" mask.
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = StringReader;
+
+},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){
+'use strict';
+var ArrayReader = require('./ArrayReader');
+var utils = require('../utils');
+
+function Uint8ArrayReader(data) {
+    ArrayReader.call(this, data);
+}
+utils.inherits(Uint8ArrayReader, ArrayReader);
+/**
+ * @see DataReader.readData
+ */
+Uint8ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].
+        return new Uint8Array(0);
+    }
+    var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = Uint8ArrayReader;
+
+},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var support = require('../support');
+var ArrayReader = require('./ArrayReader');
+var StringReader = require('./StringReader');
+var NodeBufferReader = require('./NodeBufferReader');
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+
+/**
+ * Create a reader adapted to the data.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.
+ * @return {DataReader} the data reader.
+ */
+module.exports = function (data) {
+    var type = utils.getTypeOf(data);
+    utils.checkSupport(type);
+    if (type === "string" && !support.uint8array) {
+        return new StringReader(data);
+    }
+    if (type === "nodebuffer") {
+        return new NodeBufferReader(data);
+    }
+    if (support.uint8array) {
+        return new Uint8ArrayReader(utils.transformTo("uint8array", data));
+    }
+    return new ArrayReader(utils.transformTo("array", data));
+};
+
+},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){
+'use strict';
+exports.LOCAL_FILE_HEADER = "PK\x03\x04";
+exports.CENTRAL_FILE_HEADER = "PK\x01\x02";
+exports.CENTRAL_DIRECTORY_END = "PK\x05\x06";
+exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07";
+exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06";
+exports.DATA_DESCRIPTOR = "PK\x07\x08";
+
+},{}],24:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var utils = require('../utils');
+
+/**
+ * A worker which convert chunks to a specified type.
+ * @constructor
+ * @param {String} destType the destination type.
+ */
+function ConvertWorker(destType) {
+    GenericWorker.call(this, "ConvertWorker to " + destType);
+    this.destType = destType;
+}
+utils.inherits(ConvertWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+ConvertWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : utils.transformTo(this.destType, chunk.data),
+        meta : chunk.meta
+    });
+};
+module.exports = ConvertWorker;
+
+},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var crc32 = require('../crc32');
+var utils = require('../utils');
+
+/**
+ * A worker which calculate the crc32 of the data flowing through.
+ * @constructor
+ */
+function Crc32Probe() {
+    GenericWorker.call(this, "Crc32Probe");
+    this.withStreamInfo("crc32", 0);
+}
+utils.inherits(Crc32Probe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Crc32Probe.prototype.processChunk = function (chunk) {
+    this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0);
+    this.push(chunk);
+};
+module.exports = Crc32Probe;
+
+},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+/**
+ * A worker which calculate the total length of the data flowing through.
+ * @constructor
+ * @param {String} propName the name used to expose the length
+ */
+function DataLengthProbe(propName) {
+    GenericWorker.call(this, "DataLengthProbe for " + propName);
+    this.propName = propName;
+    this.withStreamInfo(propName, 0);
+}
+utils.inherits(DataLengthProbe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+DataLengthProbe.prototype.processChunk = function (chunk) {
+    if(chunk) {
+        var length = this.streamInfo[this.propName] || 0;
+        this.streamInfo[this.propName] = length + chunk.data.length;
+    }
+    GenericWorker.prototype.processChunk.call(this, chunk);
+};
+module.exports = DataLengthProbe;
+
+
+},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+// the size of the generated chunks
+// TODO expose this as a public variable
+var DEFAULT_BLOCK_SIZE = 16 * 1024;
+
+/**
+ * A worker that reads a content and emits chunks.
+ * @constructor
+ * @param {Promise} dataP the promise of the data to split
+ */
+function DataWorker(dataP) {
+    GenericWorker.call(this, "DataWorker");
+    var self = this;
+    this.dataIsReady = false;
+    this.index = 0;
+    this.max = 0;
+    this.data = null;
+    this.type = "";
+
+    this._tickScheduled = false;
+
+    dataP.then(function (data) {
+        self.dataIsReady = true;
+        self.data = data;
+        self.max = data && data.length || 0;
+        self.type = utils.getTypeOf(data);
+        if(!self.isPaused) {
+            self._tickAndRepeat();
+        }
+    }, function (e) {
+        self.error(e);
+    });
+}
+
+utils.inherits(DataWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.cleanUp
+ */
+DataWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this.data = null;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+DataWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this._tickScheduled && this.dataIsReady) {
+        this._tickScheduled = true;
+        utils.delay(this._tickAndRepeat, [], this);
+    }
+    return true;
+};
+
+/**
+ * Trigger a tick a schedule an other call to this function.
+ */
+DataWorker.prototype._tickAndRepeat = function() {
+    this._tickScheduled = false;
+    if(this.isPaused || this.isFinished) {
+        return;
+    }
+    this._tick();
+    if(!this.isFinished) {
+        utils.delay(this._tickAndRepeat, [], this);
+        this._tickScheduled = true;
+    }
+};
+
+/**
+ * Read and push a chunk.
+ */
+DataWorker.prototype._tick = function() {
+
+    if(this.isPaused || this.isFinished) {
+        return false;
+    }
+
+    var size = DEFAULT_BLOCK_SIZE;
+    var data = null, nextIndex = Math.min(this.max, this.index + size);
+    if (this.index >= this.max) {
+        // EOF
+        return this.end();
+    } else {
+        switch(this.type) {
+            case "string":
+                data = this.data.substring(this.index, nextIndex);
+            break;
+            case "uint8array":
+                data = this.data.subarray(this.index, nextIndex);
+            break;
+            case "array":
+            case "nodebuffer":
+                data = this.data.slice(this.index, nextIndex);
+            break;
+        }
+        this.index = nextIndex;
+        return this.push({
+            data : data,
+            meta : {
+                percent : this.max ? this.index / this.max * 100 : 0
+            }
+        });
+    }
+};
+
+module.exports = DataWorker;
+
+},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){
+'use strict';
+
+/**
+ * A worker that does nothing but passing chunks to the next one. This is like
+ * a nodejs stream but with some differences. On the good side :
+ * - it works on IE 6-9 without any issue / polyfill
+ * - it weights less than the full dependencies bundled with browserify
+ * - it forwards errors (no need to declare an error handler EVERYWHERE)
+ *
+ * A chunk is an object with 2 attributes : `meta` and `data`. The former is an
+ * object containing anything (`percent` for example), see each worker for more
+ * details. The latter is the real data (String, Uint8Array, etc).
+ *
+ * @constructor
+ * @param {String} name the name of the stream (mainly used for debugging purposes)
+ */
+function GenericWorker(name) {
+    // the name of the worker
+    this.name = name || "default";
+    // an object containing metadata about the workers chain
+    this.streamInfo = {};
+    // an error which happened when the worker was paused
+    this.generatedError = null;
+    // an object containing metadata to be merged by this worker into the general metadata
+    this.extraStreamInfo = {};
+    // true if the stream is paused (and should not do anything), false otherwise
+    this.isPaused = true;
+    // true if the stream is finished (and should not do anything), false otherwise
+    this.isFinished = false;
+    // true if the stream is locked to prevent further structure updates (pipe), false otherwise
+    this.isLocked = false;
+    // the event listeners
+    this._listeners = {
+        'data':[],
+        'end':[],
+        'error':[]
+    };
+    // the previous worker, if any
+    this.previous = null;
+}
+
+GenericWorker.prototype = {
+    /**
+     * Push a chunk to the next workers.
+     * @param {Object} chunk the chunk to push
+     */
+    push : function (chunk) {
+        this.emit("data", chunk);
+    },
+    /**
+     * End the stream.
+     * @return {Boolean} true if this call ended the worker, false otherwise.
+     */
+    end : function () {
+        if (this.isFinished) {
+            return false;
+        }
+
+        this.flush();
+        try {
+            this.emit("end");
+            this.cleanUp();
+            this.isFinished = true;
+        } catch (e) {
+            this.emit("error", e);
+        }
+        return true;
+    },
+    /**
+     * End the stream with an error.
+     * @param {Error} e the error which caused the premature end.
+     * @return {Boolean} true if this call ended the worker with an error, false otherwise.
+     */
+    error : function (e) {
+        if (this.isFinished) {
+            return false;
+        }
+
+        if(this.isPaused) {
+            this.generatedError = e;
+        } else {
+            this.isFinished = true;
+
+            this.emit("error", e);
+
+            // in the workers chain exploded in the middle of the chain,
+            // the error event will go downward but we also need to notify
+            // workers upward that there has been an error.
+            if(this.previous) {
+                this.previous.error(e);
+            }
+
+            this.cleanUp();
+        }
+        return true;
+    },
+    /**
+     * Add a callback on an event.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Function} listener the function to call when the event is triggered
+     * @return {GenericWorker} the current object for chainability
+     */
+    on : function (name, listener) {
+        this._listeners[name].push(listener);
+        return this;
+    },
+    /**
+     * Clean any references when a worker is ending.
+     */
+    cleanUp : function () {
+        this.streamInfo = this.generatedError = this.extraStreamInfo = null;
+        this._listeners = [];
+    },
+    /**
+     * Trigger an event. This will call registered callback with the provided arg.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Object} arg the argument to call the callback with.
+     */
+    emit : function (name, arg) {
+        if (this._listeners[name]) {
+            for(var i = 0; i < this._listeners[name].length; i++) {
+                this._listeners[name][i].call(this, arg);
+            }
+        }
+    },
+    /**
+     * Chain a worker with an other.
+     * @param {Worker} next the worker receiving events from the current one.
+     * @return {worker} the next worker for chainability
+     */
+    pipe : function (next) {
+        return next.registerPrevious(this);
+    },
+    /**
+     * Same as `pipe` in the other direction.
+     * Using an API with `pipe(next)` is very easy.
+     * Implementing the API with the point of view of the next one registering
+     * a source is easier, see the ZipFileWorker.
+     * @param {Worker} previous the previous worker, sending events to this one
+     * @return {Worker} the current worker for chainability
+     */
+    registerPrevious : function (previous) {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+
+        // sharing the streamInfo...
+        this.streamInfo = previous.streamInfo;
+        // ... and adding our own bits
+        this.mergeStreamInfo();
+        this.previous =  previous;
+        var self = this;
+        previous.on('data', function (chunk) {
+            self.processChunk(chunk);
+        });
+        previous.on('end', function () {
+            self.end();
+        });
+        previous.on('error', function (e) {
+            self.error(e);
+        });
+        return this;
+    },
+    /**
+     * Pause the stream so it doesn't send events anymore.
+     * @return {Boolean} true if this call paused the worker, false otherwise.
+     */
+    pause : function () {
+        if(this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = true;
+
+        if(this.previous) {
+            this.previous.pause();
+        }
+        return true;
+    },
+    /**
+     * Resume a paused stream.
+     * @return {Boolean} true if this call resumed the worker, false otherwise.
+     */
+    resume : function () {
+        if(!this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = false;
+
+        // if true, the worker tried to resume but failed
+        var withError = false;
+        if(this.generatedError) {
+            this.error(this.generatedError);
+            withError = true;
+        }
+        if(this.previous) {
+            this.previous.resume();
+        }
+
+        return !withError;
+    },
+    /**
+     * Flush any remaining bytes as the stream is ending.
+     */
+    flush : function () {},
+    /**
+     * Process a chunk. This is usually the method overridden.
+     * @param {Object} chunk the chunk to process.
+     */
+    processChunk : function(chunk) {
+        this.push(chunk);
+    },
+    /**
+     * Add a key/value to be added in the workers chain streamInfo once activated.
+     * @param {String} key the key to use
+     * @param {Object} value the associated value
+     * @return {Worker} the current worker for chainability
+     */
+    withStreamInfo : function (key, value) {
+        this.extraStreamInfo[key] = value;
+        this.mergeStreamInfo();
+        return this;
+    },
+    /**
+     * Merge this worker's streamInfo into the chain's streamInfo.
+     */
+    mergeStreamInfo : function () {
+        for(var key in this.extraStreamInfo) {
+            if (!this.extraStreamInfo.hasOwnProperty(key)) {
+                continue;
+            }
+            this.streamInfo[key] = this.extraStreamInfo[key];
+        }
+    },
+
+    /**
+     * Lock the stream to prevent further updates on the workers chain.
+     * After calling this method, all calls to pipe will fail.
+     */
+    lock: function () {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+        this.isLocked = true;
+        if (this.previous) {
+            this.previous.lock();
+        }
+    },
+
+    /**
+     *
+     * Pretty print the workers chain.
+     */
+    toString : function () {
+        var me = "Worker " + this.name;
+        if (this.previous) {
+            return this.previous + " -> " + me;
+        } else {
+            return me;
+        }
+    }
+};
+
+module.exports = GenericWorker;
+
+},{}],29:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var ConvertWorker = require('./ConvertWorker');
+var GenericWorker = require('./GenericWorker');
+var base64 = require('../base64');
+var support = require("../support");
+var external = require("../external");
+
+var NodejsStreamOutputAdapter = null;
+if (support.nodestream) {
+    try {
+        NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');
+    } catch(e) {}
+}
+
+/**
+ * Apply the final transformation of the data. If the user wants a Blob for
+ * example, it's easier to work with an U8intArray and finally do the
+ * ArrayBuffer/Blob conversion.
+ * @param {String} type the name of the final type
+ * @param {String|Uint8Array|Buffer} content the content to transform
+ * @param {String} mimeType the mime type of the content, if applicable.
+ * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.
+ */
+function transformZipOutput(type, content, mimeType) {
+    switch(type) {
+        case "blob" :
+            return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType);
+        case "base64" :
+            return base64.encode(content);
+        default :
+            return utils.transformTo(type, content);
+    }
+}
+
+/**
+ * Concatenate an array of data of the given type.
+ * @param {String} type the type of the data in the given array.
+ * @param {Array} dataArray the array containing the data chunks to concatenate
+ * @return {String|Uint8Array|Buffer} the concatenated data
+ * @throws Error if the asked type is unsupported
+ */
+function concat (type, dataArray) {
+    var i, index = 0, res = null, totalLength = 0;
+    for(i = 0; i < dataArray.length; i++) {
+        totalLength += dataArray[i].length;
+    }
+    switch(type) {
+        case "string":
+            return dataArray.join("");
+          case "array":
+            return Array.prototype.concat.apply([], dataArray);
+        case "uint8array":
+            res = new Uint8Array(totalLength);
+            for(i = 0; i < dataArray.length; i++) {
+                res.set(dataArray[i], index);
+                index += dataArray[i].length;
+            }
+            return res;
+        case "nodebuffer":
+            return Buffer.concat(dataArray);
+        default:
+            throw new Error("concat : unsupported type '"  + type + "'");
+    }
+}
+
+/**
+ * Listen a StreamHelper, accumulate its content and concatenate it into a
+ * complete block.
+ * @param {StreamHelper} helper the helper to use.
+ * @param {Function} updateCallback a callback called on each update. Called
+ * with one arg :
+ * - the metadata linked to the update received.
+ * @return Promise the promise for the accumulation.
+ */
+function accumulate(helper, updateCallback) {
+    return new external.Promise(function (resolve, reject){
+        var dataArray = [];
+        var chunkType = helper._internalType,
+            resultType = helper._outputType,
+            mimeType = helper._mimeType;
+        helper
+        .on('data', function (data, meta) {
+            dataArray.push(data);
+            if(updateCallback) {
+                updateCallback(meta);
+            }
+        })
+        .on('error', function(err) {
+            dataArray = [];
+            reject(err);
+        })
+        .on('end', function (){
+            try {
+                var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);
+                resolve(result);
+            } catch (e) {
+                reject(e);
+            }
+            dataArray = [];
+        })
+        .resume();
+    });
+}
+
+/**
+ * An helper to easily use workers outside of JSZip.
+ * @constructor
+ * @param {Worker} worker the worker to wrap
+ * @param {String} outputType the type of data expected by the use
+ * @param {String} mimeType the mime type of the content, if applicable.
+ */
+function StreamHelper(worker, outputType, mimeType) {
+    var internalType = outputType;
+    switch(outputType) {
+        case "blob":
+        case "arraybuffer":
+            internalType = "uint8array";
+        break;
+        case "base64":
+            internalType = "string";
+        break;
+    }
+
+    try {
+        // the type used internally
+        this._internalType = internalType;
+        // the type used to output results
+        this._outputType = outputType;
+        // the mime type
+        this._mimeType = mimeType;
+        utils.checkSupport(internalType);
+        this._worker = worker.pipe(new ConvertWorker(internalType));
+        // the last workers can be rewired without issues but we need to
+        // prevent any updates on previous workers.
+        worker.lock();
+    } catch(e) {
+        this._worker = new GenericWorker("error");
+        this._worker.error(e);
+    }
+}
+
+StreamHelper.prototype = {
+    /**
+     * Listen a StreamHelper, accumulate its content and concatenate it into a
+     * complete block.
+     * @param {Function} updateCb the update callback.
+     * @return Promise the promise for the accumulation.
+     */
+    accumulate : function (updateCb) {
+        return accumulate(this, updateCb);
+    },
+    /**
+     * Add a listener on an event triggered on a stream.
+     * @param {String} evt the name of the event
+     * @param {Function} fn the listener
+     * @return {StreamHelper} the current helper.
+     */
+    on : function (evt, fn) {
+        var self = this;
+
+        if(evt === "data") {
+            this._worker.on(evt, function (chunk) {
+                fn.call(self, chunk.data, chunk.meta);
+            });
+        } else {
+            this._worker.on(evt, function () {
+                utils.delay(fn, arguments, self);
+            });
+        }
+        return this;
+    },
+    /**
+     * Resume the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    resume : function () {
+        utils.delay(this._worker.resume, [], this._worker);
+        return this;
+    },
+    /**
+     * Pause the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    pause : function () {
+        this._worker.pause();
+        return this;
+    },
+    /**
+     * Return a nodejs stream for this helper.
+     * @param {Function} updateCb the update callback.
+     * @return {NodejsStreamOutputAdapter} the nodejs stream.
+     */
+    toNodejsStream : function (updateCb) {
+        utils.checkSupport("nodestream");
+        if (this._outputType !== "nodebuffer") {
+            // an object stream containing blob/arraybuffer/uint8array/string
+            // is strange and I don't know if it would be useful.
+            // I you find this comment and have a good usecase, please open a
+            // bug report !
+            throw new Error(this._outputType + " is not supported by this method");
+        }
+
+        return new NodejsStreamOutputAdapter(this, {
+            objectMode : this._outputType !== "nodebuffer"
+        }, updateCb);
+    }
+};
+
+
+module.exports = StreamHelper;
+
+},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){
+'use strict';
+
+exports.base64 = true;
+exports.array = true;
+exports.string = true;
+exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined";
+exports.nodebuffer = typeof Buffer !== "undefined";
+// contains true if JSZip can read/generate Uint8Array, false otherwise.
+exports.uint8array = typeof Uint8Array !== "undefined";
+
+if (typeof ArrayBuffer === "undefined") {
+    exports.blob = false;
+}
+else {
+    var buffer = new ArrayBuffer(0);
+    try {
+        exports.blob = new Blob([buffer], {
+            type: "application/zip"
+        }).size === 0;
+    }
+    catch (e) {
+        try {
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(buffer);
+            exports.blob = builder.getBlob('application/zip').size === 0;
+        }
+        catch (e) {
+            exports.blob = false;
+        }
+    }
+}
+
+try {
+    exports.nodestream = !!require('readable-stream').Readable;
+} catch(e) {
+    exports.nodestream = false;
+}
+
+},{"readable-stream":16}],31:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+var support = require('./support');
+var nodejsUtils = require('./nodejsUtils');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * The following functions come from pako, from pako/lib/utils/strings
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new Array(256);
+for (var i=0; i<256; i++) {
+  _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);
+}
+_utf8len[254]=_utf8len[254]=1; // Invalid sequence start
+
+// convert string to array (typed, when possible)
+var string2buf = function (str) {
+    var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+    // count binary size
+    for (m_pos = 0; m_pos < str_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+    }
+
+    // allocate buffer
+    if (support.uint8array) {
+        buf = new Uint8Array(buf_len);
+    } else {
+        buf = new Array(buf_len);
+    }
+
+    // convert
+    for (i=0, m_pos = 0; i < buf_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        if (c < 0x80) {
+            /* one byte */
+            buf[i++] = c;
+        } else if (c < 0x800) {
+            /* two bytes */
+            buf[i++] = 0xC0 | (c >>> 6);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else if (c < 0x10000) {
+            /* three bytes */
+            buf[i++] = 0xE0 | (c >>> 12);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else {
+            /* four bytes */
+            buf[i++] = 0xf0 | (c >>> 18);
+            buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        }
+    }
+
+    return buf;
+};
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+var utf8border = function(buf, max) {
+    var pos;
+
+    max = max || buf.length;
+    if (max > buf.length) { max = buf.length; }
+
+    // go back from last position, until start of sequence found
+    pos = max-1;
+    while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+    // Fuckup - very small and broken sequence,
+    // return max, because we should return something anyway.
+    if (pos < 0) { return max; }
+
+    // If we came to start of buffer - that means vuffer is too small,
+    // return max too.
+    if (pos === 0) { return max; }
+
+    return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+// convert array to string
+var buf2string = function (buf) {
+    var str, i, out, c, c_len;
+    var len = buf.length;
+
+    // Reserve max possible length (2 words per char)
+    // NB: by unknown reasons, Array is significantly faster for
+    //     String.fromCharCode.apply than Uint16Array.
+    var utf16buf = new Array(len*2);
+
+    for (out=0, i=0; i<len;) {
+        c = buf[i++];
+        // quick process ascii
+        if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+        c_len = _utf8len[c];
+        // skip 5 & 6 byte codes
+        if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }
+
+        // apply mask on first byte
+        c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+        // join the rest
+        while (c_len > 1 && i < len) {
+            c = (c << 6) | (buf[i++] & 0x3f);
+            c_len--;
+        }
+
+        // terminated by end of string?
+        if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+        if (c < 0x10000) {
+            utf16buf[out++] = c;
+        } else {
+            c -= 0x10000;
+            utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+            utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+        }
+    }
+
+    // shrinkBuf(utf16buf, out)
+    if (utf16buf.length !== out) {
+        if(utf16buf.subarray) {
+            utf16buf = utf16buf.subarray(0, out);
+        } else {
+            utf16buf.length = out;
+        }
+    }
+
+    // return String.fromCharCode.apply(null, utf16buf);
+    return utils.applyFromCharCode(utf16buf);
+};
+
+
+// That's all for the pako functions.
+
+
+/**
+ * Transform a javascript string into an array (typed if possible) of bytes,
+ * UTF-8 encoded.
+ * @param {String} str the string to encode
+ * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.
+ */
+exports.utf8encode = function utf8encode(str) {
+    if (support.nodebuffer) {
+        return nodejsUtils.newBufferFrom(str, "utf-8");
+    }
+
+    return string2buf(str);
+};
+
+
+/**
+ * Transform a bytes array (or a representation) representing an UTF-8 encoded
+ * string into a javascript string.
+ * @param {Array|Uint8Array|Buffer} buf the data de decode
+ * @return {String} the decoded string.
+ */
+exports.utf8decode = function utf8decode(buf) {
+    if (support.nodebuffer) {
+        return utils.transformTo("nodebuffer", buf).toString("utf-8");
+    }
+
+    buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf);
+
+    return buf2string(buf);
+};
+
+/**
+ * A worker to decode utf8 encoded binary chunks into string chunks.
+ * @constructor
+ */
+function Utf8DecodeWorker() {
+    GenericWorker.call(this, "utf-8 decode");
+    // the last bytes if a chunk didn't end with a complete codepoint.
+    this.leftOver = null;
+}
+utils.inherits(Utf8DecodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8DecodeWorker.prototype.processChunk = function (chunk) {
+
+    var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data);
+
+    // 1st step, re-use what's left of the previous chunk
+    if (this.leftOver && this.leftOver.length) {
+        if(support.uint8array) {
+            var previousData = data;
+            data = new Uint8Array(previousData.length + this.leftOver.length);
+            data.set(this.leftOver, 0);
+            data.set(previousData, this.leftOver.length);
+        } else {
+            data = this.leftOver.concat(data);
+        }
+        this.leftOver = null;
+    }
+
+    var nextBoundary = utf8border(data);
+    var usableData = data;
+    if (nextBoundary !== data.length) {
+        if (support.uint8array) {
+            usableData = data.subarray(0, nextBoundary);
+            this.leftOver = data.subarray(nextBoundary, data.length);
+        } else {
+            usableData = data.slice(0, nextBoundary);
+            this.leftOver = data.slice(nextBoundary, data.length);
+        }
+    }
+
+    this.push({
+        data : exports.utf8decode(usableData),
+        meta : chunk.meta
+    });
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+Utf8DecodeWorker.prototype.flush = function () {
+    if(this.leftOver && this.leftOver.length) {
+        this.push({
+            data : exports.utf8decode(this.leftOver),
+            meta : {}
+        });
+        this.leftOver = null;
+    }
+};
+exports.Utf8DecodeWorker = Utf8DecodeWorker;
+
+/**
+ * A worker to endcode string chunks into utf8 encoded binary chunks.
+ * @constructor
+ */
+function Utf8EncodeWorker() {
+    GenericWorker.call(this, "utf-8 encode");
+}
+utils.inherits(Utf8EncodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8EncodeWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : exports.utf8encode(chunk.data),
+        meta : chunk.meta
+    });
+};
+exports.Utf8EncodeWorker = Utf8EncodeWorker;
+
+},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){
+'use strict';
+
+var support = require('./support');
+var base64 = require('./base64');
+var nodejsUtils = require('./nodejsUtils');
+var setImmediate = require('core-js/library/fn/set-immediate');
+var external = require("./external");
+
+
+/**
+ * Convert a string that pass as a "binary string": it should represent a byte
+ * array but may have > 255 char codes. Be sure to take only the first byte
+ * and returns the byte array.
+ * @param {String} str the string to transform.
+ * @return {Array|Uint8Array} the string in a binary format.
+ */
+function string2binary(str) {
+    var result = null;
+    if (support.uint8array) {
+      result = new Uint8Array(str.length);
+    } else {
+      result = new Array(str.length);
+    }
+    return stringToArrayLike(str, result);
+}
+
+/**
+ * Create a new blob with the given content and the given type.
+ * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use
+ * an Uint8Array because the stock browser of android 4 won't accept it (it
+ * will be silently converted to a string, "[object Uint8Array]").
+ *
+ * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge:
+ * when a large amount of Array is used to create the Blob, the amount of
+ * memory consumed is nearly 100 times the original data amount.
+ *
+ * @param {String} type the mime type of the blob.
+ * @return {Blob} the created blob.
+ */
+exports.newBlob = function(part, type) {
+    exports.checkSupport("blob");
+
+    try {
+        // Blob constructor
+        return new Blob([part], {
+            type: type
+        });
+    }
+    catch (e) {
+
+        try {
+            // deprecated, browser only, old way
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(part);
+            return builder.getBlob(type);
+        }
+        catch (e) {
+
+            // well, fuck ?!
+            throw new Error("Bug : can't construct the Blob.");
+        }
+    }
+
+
+};
+/**
+ * The identity function.
+ * @param {Object} input the input.
+ * @return {Object} the same input.
+ */
+function identity(input) {
+    return input;
+}
+
+/**
+ * Fill in an array with a string.
+ * @param {String} str the string to use.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.
+ */
+function stringToArrayLike(str, array) {
+    for (var i = 0; i < str.length; ++i) {
+        array[i] = str.charCodeAt(i) & 0xFF;
+    }
+    return array;
+}
+
+/**
+ * An helper for the function arrayLikeToString.
+ * This contains static informations and functions that
+ * can be optimized by the browser JIT compiler.
+ */
+var arrayToStringHelper = {
+    /**
+     * Transform an array of int into a string, chunk by chunk.
+     * See the performances notes on arrayLikeToString.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @param {String} type the type of the array.
+     * @param {Integer} chunk the chunk size.
+     * @return {String} the resulting string.
+     * @throws Error if the chunk is too big for the stack.
+     */
+    stringifyByChunk: function(array, type, chunk) {
+        var result = [], k = 0, len = array.length;
+        // shortcut
+        if (len <= chunk) {
+            return String.fromCharCode.apply(null, array);
+        }
+        while (k < len) {
+            if (type === "array" || type === "nodebuffer") {
+                result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));
+            }
+            else {
+                result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));
+            }
+            k += chunk;
+        }
+        return result.join("");
+    },
+    /**
+     * Call String.fromCharCode on every item in the array.
+     * This is the naive implementation, which generate A LOT of intermediate string.
+     * This should be used when everything else fail.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @return {String} the result.
+     */
+    stringifyByChar: function(array){
+        var resultStr = "";
+        for(var i = 0; i < array.length; i++) {
+            resultStr += String.fromCharCode(array[i]);
+        }
+        return resultStr;
+    },
+    applyCanBeUsed : {
+        /**
+         * true if the browser accepts to use String.fromCharCode on Uint8Array
+         */
+        uint8array : (function () {
+            try {
+                return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })(),
+        /**
+         * true if the browser accepts to use String.fromCharCode on nodejs Buffer.
+         */
+        nodebuffer : (function () {
+            try {
+                return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })()
+    }
+};
+
+/**
+ * Transform an array-like object to a string.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+ * @return {String} the result.
+ */
+function arrayLikeToString(array) {
+    // Performances notes :
+    // --------------------
+    // String.fromCharCode.apply(null, array) is the fastest, see
+    // see http://jsperf.com/converting-a-uint8array-to-a-string/2
+    // but the stack is limited (and we can get huge arrays !).
+    //
+    // result += String.fromCharCode(array[i]); generate too many strings !
+    //
+    // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2
+    // TODO : we now have workers that split the work. Do we still need that ?
+    var chunk = 65536,
+        type = exports.getTypeOf(array),
+        canUseApply = true;
+    if (type === "uint8array") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array;
+    } else if (type === "nodebuffer") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer;
+    }
+
+    if (canUseApply) {
+        while (chunk > 1) {
+            try {
+                return arrayToStringHelper.stringifyByChunk(array, type, chunk);
+            } catch (e) {
+                chunk = Math.floor(chunk / 2);
+            }
+        }
+    }
+
+    // no apply or chunk error : slow and painful algorithm
+    // default browser on android 4.*
+    return arrayToStringHelper.stringifyByChar(array);
+}
+
+exports.applyFromCharCode = arrayLikeToString;
+
+
+/**
+ * Copy the data from an array-like to an other array-like.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.
+ */
+function arrayLikeToArrayLike(arrayFrom, arrayTo) {
+    for (var i = 0; i < arrayFrom.length; i++) {
+        arrayTo[i] = arrayFrom[i];
+    }
+    return arrayTo;
+}
+
+// a matrix containing functions to transform everything into everything.
+var transform = {};
+
+// string to ?
+transform["string"] = {
+    "string": identity,
+    "array": function(input) {
+        return stringToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["string"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return stringToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": function(input) {
+        return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length));
+    }
+};
+
+// array to ?
+transform["array"] = {
+    "string": arrayLikeToString,
+    "array": identity,
+    "arraybuffer": function(input) {
+        return (new Uint8Array(input)).buffer;
+    },
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// arraybuffer to ?
+transform["arraybuffer"] = {
+    "string": function(input) {
+        return arrayLikeToString(new Uint8Array(input));
+    },
+    "array": function(input) {
+        return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));
+    },
+    "arraybuffer": identity,
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(new Uint8Array(input));
+    }
+};
+
+// uint8array to ?
+transform["uint8array"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return input.buffer;
+    },
+    "uint8array": identity,
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// nodebuffer to ?
+transform["nodebuffer"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["nodebuffer"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return arrayLikeToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": identity
+};
+
+/**
+ * Transform an input into any type.
+ * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.
+ * If no output type is specified, the unmodified input will be returned.
+ * @param {String} outputType the output type.
+ * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.
+ * @throws {Error} an Error if the browser doesn't support the requested output type.
+ */
+exports.transformTo = function(outputType, input) {
+    if (!input) {
+        // undefined, null, etc
+        // an empty string won't harm.
+        input = "";
+    }
+    if (!outputType) {
+        return input;
+    }
+    exports.checkSupport(outputType);
+    var inputType = exports.getTypeOf(input);
+    var result = transform[inputType][outputType](input);
+    return result;
+};
+
+/**
+ * Return the type of the input.
+ * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.
+ * @param {Object} input the input to identify.
+ * @return {String} the (lowercase) type of the input.
+ */
+exports.getTypeOf = function(input) {
+    if (typeof input === "string") {
+        return "string";
+    }
+    if (Object.prototype.toString.call(input) === "[object Array]") {
+        return "array";
+    }
+    if (support.nodebuffer && nodejsUtils.isBuffer(input)) {
+        return "nodebuffer";
+    }
+    if (support.uint8array && input instanceof Uint8Array) {
+        return "uint8array";
+    }
+    if (support.arraybuffer && input instanceof ArrayBuffer) {
+        return "arraybuffer";
+    }
+};
+
+/**
+ * Throw an exception if the type is not supported.
+ * @param {String} type the type to check.
+ * @throws {Error} an Error if the browser doesn't support the requested type.
+ */
+exports.checkSupport = function(type) {
+    var supported = support[type.toLowerCase()];
+    if (!supported) {
+        throw new Error(type + " is not supported by this platform");
+    }
+};
+
+exports.MAX_VALUE_16BITS = 65535;
+exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1
+
+/**
+ * Prettify a string read as binary.
+ * @param {string} str the string to prettify.
+ * @return {string} a pretty string.
+ */
+exports.pretty = function(str) {
+    var res = '',
+        code, i;
+    for (i = 0; i < (str || "").length; i++) {
+        code = str.charCodeAt(i);
+        res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase();
+    }
+    return res;
+};
+
+/**
+ * Defer the call of a function.
+ * @param {Function} callback the function to call asynchronously.
+ * @param {Array} args the arguments to give to the callback.
+ */
+exports.delay = function(callback, args, self) {
+    setImmediate(function () {
+        callback.apply(self || null, args || []);
+    });
+};
+
+/**
+ * Extends a prototype with an other, without calling a constructor with
+ * side effects. Inspired by nodejs' `utils.inherits`
+ * @param {Function} ctor the constructor to augment
+ * @param {Function} superCtor the parent constructor to use
+ */
+exports.inherits = function (ctor, superCtor) {
+    var Obj = function() {};
+    Obj.prototype = superCtor.prototype;
+    ctor.prototype = new Obj();
+};
+
+/**
+ * Merge the objects passed as parameters into a new one.
+ * @private
+ * @param {...Object} var_args All objects to merge.
+ * @return {Object} a new object with the data of the others.
+ */
+exports.extend = function() {
+    var result = {}, i, attr;
+    for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers
+        for (attr in arguments[i]) {
+            if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") {
+                result[attr] = arguments[i][attr];
+            }
+        }
+    }
+    return result;
+};
+
+/**
+ * Transform arbitrary content into a Promise.
+ * @param {String} name a name for the content being processed.
+ * @param {Object} inputData the content to process.
+ * @param {Boolean} isBinary true if the content is not an unicode string
+ * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.
+ * @param {Boolean} isBase64 true if the string content is encoded with base64.
+ * @return {Promise} a promise in a format usable by JSZip.
+ */
+exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {
+
+    // if inputData is already a promise, this flatten it.
+    var promise = external.Promise.resolve(inputData).then(function(data) {
+        
+        
+        var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);
+
+        if (isBlob && typeof FileReader !== "undefined") {
+            return new external.Promise(function (resolve, reject) {
+                var reader = new FileReader();
+
+                reader.onload = function(e) {
+                    resolve(e.target.result);
+                };
+                reader.onerror = function(e) {
+                    reject(e.target.error);
+                };
+                reader.readAsArrayBuffer(data);
+            });
+        } else {
+            return data;
+        }
+    });
+
+    return promise.then(function(data) {
+        var dataType = exports.getTypeOf(data);
+
+        if (!dataType) {
+            return external.Promise.reject(
+                new Error("Can't read the data of '" + name + "'. Is it " +
+                          "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")
+            );
+        }
+        // special case : it's way easier to work with Uint8Array than with ArrayBuffer
+        if (dataType === "arraybuffer") {
+            data = exports.transformTo("uint8array", data);
+        } else if (dataType === "string") {
+            if (isBase64) {
+                data = base64.decode(data);
+            }
+            else if (isBinary) {
+                // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask
+                if (isOptimizedBinaryString !== true) {
+                    // this is a string, not in a base64 format.
+                    // Be sure that this is a correct "binary string"
+                    data = string2binary(data);
+                }
+            }
+        }
+        return data;
+    });
+};
+
+},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var sig = require('./signature');
+var ZipEntry = require('./zipEntry');
+var utf8 = require('./utf8');
+var support = require('./support');
+//  class ZipEntries {{{
+/**
+ * All the entries in the zip file.
+ * @constructor
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntries(loadOptions) {
+    this.files = [];
+    this.loadOptions = loadOptions;
+}
+ZipEntries.prototype = {
+    /**
+     * Check that the reader is on the specified signature.
+     * @param {string} expectedSignature the expected signature.
+     * @throws {Error} if it is an other signature.
+     */
+    checkSignature: function(expectedSignature) {
+        if (!this.reader.readAndCheckSignature(expectedSignature)) {
+            this.reader.index -= 4;
+            var signature = this.reader.readString(4);
+            throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")");
+        }
+    },
+    /**
+     * Check if the given signature is at the given index.
+     * @param {number} askedIndex the index to check.
+     * @param {string} expectedSignature the signature to expect.
+     * @return {boolean} true if the signature is here, false otherwise.
+     */
+    isSignature: function(askedIndex, expectedSignature) {
+        var currentIndex = this.reader.index;
+        this.reader.setIndex(askedIndex);
+        var signature = this.reader.readString(4);
+        var result = signature === expectedSignature;
+        this.reader.setIndex(currentIndex);
+        return result;
+    },
+    /**
+     * Read the end of the central directory.
+     */
+    readBlockEndOfCentral: function() {
+        this.diskNumber = this.reader.readInt(2);
+        this.diskWithCentralDirStart = this.reader.readInt(2);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(2);
+        this.centralDirRecords = this.reader.readInt(2);
+        this.centralDirSize = this.reader.readInt(4);
+        this.centralDirOffset = this.reader.readInt(4);
+
+        this.zipCommentLength = this.reader.readInt(2);
+        // warning : the encoding depends of the system locale
+        // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.
+        // On a windows machine, this field is encoded with the localized windows code page.
+        var zipComment = this.reader.readData(this.zipCommentLength);
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        // To get consistent behavior with the generation part, we will assume that
+        // this is utf8 encoded unless specified otherwise.
+        var decodeContent = utils.transformTo(decodeParamType, zipComment);
+        this.zipComment = this.loadOptions.decodeFileName(decodeContent);
+    },
+    /**
+     * Read the end of the Zip 64 central directory.
+     * Not merged with the method readEndOfCentral :
+     * The end of central can coexist with its Zip64 brother,
+     * I don't want to read the wrong number of bytes !
+     */
+    readBlockZip64EndOfCentral: function() {
+        this.zip64EndOfCentralSize = this.reader.readInt(8);
+        this.reader.skip(4);
+        // this.versionMadeBy = this.reader.readString(2);
+        // this.versionNeeded = this.reader.readInt(2);
+        this.diskNumber = this.reader.readInt(4);
+        this.diskWithCentralDirStart = this.reader.readInt(4);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(8);
+        this.centralDirRecords = this.reader.readInt(8);
+        this.centralDirSize = this.reader.readInt(8);
+        this.centralDirOffset = this.reader.readInt(8);
+
+        this.zip64ExtensibleData = {};
+        var extraDataSize = this.zip64EndOfCentralSize - 44,
+            index = 0,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+        while (index < extraDataSize) {
+            extraFieldId = this.reader.readInt(2);
+            extraFieldLength = this.reader.readInt(4);
+            extraFieldValue = this.reader.readData(extraFieldLength);
+            this.zip64ExtensibleData[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Read the end of the Zip 64 central directory locator.
+     */
+    readBlockZip64EndOfCentralLocator: function() {
+        this.diskWithZip64CentralDirStart = this.reader.readInt(4);
+        this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);
+        this.disksCount = this.reader.readInt(4);
+        if (this.disksCount > 1) {
+            throw new Error("Multi-volumes zip are not supported");
+        }
+    },
+    /**
+     * Read the local files, based on the offset read in the central part.
+     */
+    readLocalFiles: function() {
+        var i, file;
+        for (i = 0; i < this.files.length; i++) {
+            file = this.files[i];
+            this.reader.setIndex(file.localHeaderOffset);
+            this.checkSignature(sig.LOCAL_FILE_HEADER);
+            file.readLocalPart(this.reader);
+            file.handleUTF8();
+            file.processAttributes();
+        }
+    },
+    /**
+     * Read the central directory.
+     */
+    readCentralDir: function() {
+        var file;
+
+        this.reader.setIndex(this.centralDirOffset);
+        while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) {
+            file = new ZipEntry({
+                zip64: this.zip64
+            }, this.loadOptions);
+            file.readCentralPart(this.reader);
+            this.files.push(file);
+        }
+
+        if (this.centralDirRecords !== this.files.length) {
+            if (this.centralDirRecords !== 0 && this.files.length === 0) {
+                // We expected some records but couldn't find ANY.
+                // This is really suspicious, as if something went wrong.
+                throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
+            } else {
+                // We found some records but not all.
+                // Something is wrong but we got something for the user: no error here.
+                // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length);
+            }
+        }
+    },
+    /**
+     * Read the end of central directory.
+     */
+    readEndOfCentral: function() {
+        var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);
+        if (offset < 0) {
+            // Check if the content is a truncated zip or complete garbage.
+            // A "LOCAL_FILE_HEADER" is not required at the beginning (auto
+            // extractible zip for example) but it can give a good hint.
+            // If an ajax request was used without responseType, we will also
+            // get unreadable data.
+            var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER);
+
+            if (isGarbage) {
+                throw new Error("Can't find end of central directory : is this a zip file ? " +
+                                "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");
+            } else {
+                throw new Error("Corrupted zip: can't find end of central directory");
+            }
+
+        }
+        this.reader.setIndex(offset);
+        var endOfCentralDirOffset = offset;
+        this.checkSignature(sig.CENTRAL_DIRECTORY_END);
+        this.readBlockEndOfCentral();
+
+
+        /* extract from the zip spec :
+            4)  If one of the fields in the end of central directory
+                record is too small to hold required data, the field
+                should be set to -1 (0xFFFF or 0xFFFFFFFF) and the
+                ZIP64 format record should be created.
+            5)  The end of central directory record and the
+                Zip64 end of central directory locator record must
+                reside on the same disk when splitting or spanning
+                an archive.
+         */
+        if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) {
+            this.zip64 = true;
+
+            /*
+            Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from
+            the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents
+            all numbers as 64-bit double precision IEEE 754 floating point numbers.
+            So, we have 53bits for integers and bitwise operations treat everything as 32bits.
+            see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators
+            and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5
+            */
+
+            // should look for a zip64 EOCD locator
+            offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            if (offset < 0) {
+                throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
+            }
+            this.reader.setIndex(offset);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            this.readBlockZip64EndOfCentralLocator();
+
+            // now the zip64 EOCD record
+            if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) {
+                // console.warn("ZIP64 end of central directory not where expected.");
+                this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+                if (this.relativeOffsetEndOfZip64CentralDir < 0) {
+                    throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
+                }
+            }
+            this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+            this.readBlockZip64EndOfCentral();
+        }
+
+        var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize;
+        if (this.zip64) {
+            expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator
+            expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize;
+        }
+
+        var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset;
+
+        if (extraBytes > 0) {
+            // console.warn(extraBytes, "extra bytes at beginning or within zipfile");
+            if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) {
+                // The offsets seem wrong, but we have something at the specified offset.
+                // So… we keep it.
+            } else {
+                // the offset is wrong, update the "zero" of the reader
+                // this happens if data has been prepended (crx files for example)
+                this.reader.zero = extraBytes;
+            }
+        } else if (extraBytes < 0) {
+            throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes.");
+        }
+    },
+    prepareReader: function(data) {
+        this.reader = readerFor(data);
+    },
+    /**
+     * Read a zip file and create ZipEntries.
+     * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.
+     */
+    load: function(data) {
+        this.prepareReader(data);
+        this.readEndOfCentral();
+        this.readCentralDir();
+        this.readLocalFiles();
+    }
+};
+// }}} end of ZipEntries
+module.exports = ZipEntries;
+
+},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var CompressedObject = require('./compressedObject');
+var crc32fn = require('./crc32');
+var utf8 = require('./utf8');
+var compressions = require('./compressions');
+var support = require('./support');
+
+var MADE_BY_DOS = 0x00;
+var MADE_BY_UNIX = 0x03;
+
+/**
+ * Find a compression registered in JSZip.
+ * @param {string} compressionMethod the method magic to find.
+ * @return {Object|null} the JSZip compression object, null if none found.
+ */
+var findCompression = function(compressionMethod) {
+    for (var method in compressions) {
+        if (!compressions.hasOwnProperty(method)) {
+            continue;
+        }
+        if (compressions[method].magic === compressionMethod) {
+            return compressions[method];
+        }
+    }
+    return null;
+};
+
+// class ZipEntry {{{
+/**
+ * An entry in the zip file.
+ * @constructor
+ * @param {Object} options Options of the current file.
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntry(options, loadOptions) {
+    this.options = options;
+    this.loadOptions = loadOptions;
+}
+ZipEntry.prototype = {
+    /**
+     * say if the file is encrypted.
+     * @return {boolean} true if the file is encrypted, false otherwise.
+     */
+    isEncrypted: function() {
+        // bit 1 is set
+        return (this.bitFlag & 0x0001) === 0x0001;
+    },
+    /**
+     * say if the file has utf-8 filename/comment.
+     * @return {boolean} true if the filename/comment is in utf-8, false otherwise.
+     */
+    useUTF8: function() {
+        // bit 11 is set
+        return (this.bitFlag & 0x0800) === 0x0800;
+    },
+    /**
+     * Read the local part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readLocalPart: function(reader) {
+        var compression, localExtraFieldsLength;
+
+        // we already know everything from the central dir !
+        // If the central dir data are false, we are doomed.
+        // On the bright side, the local part is scary  : zip64, data descriptors, both, etc.
+        // The less data we get here, the more reliable this should be.
+        // Let's skip the whole header and dash to the data !
+        reader.skip(22);
+        // in some zip created on windows, the filename stored in the central dir contains \ instead of /.
+        // Strangely, the filename here is OK.
+        // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes
+        // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators...
+        // Search "unzip mismatching "local" filename continuing with "central" filename version" on
+        // the internet.
+        //
+        // I think I see the logic here : the central directory is used to display
+        // content and the local directory is used to extract the files. Mixing / and \
+        // may be used to display \ to windows users and use / when extracting the files.
+        // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394
+        this.fileNameLength = reader.readInt(2);
+        localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir
+        // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding.
+        this.fileName = reader.readData(this.fileNameLength);
+        reader.skip(localExtraFieldsLength);
+
+        if (this.compressedSize === -1 || this.uncompressedSize === -1) {
+            throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)");
+        }
+
+        compression = findCompression(this.compressionMethod);
+        if (compression === null) { // no compression found
+            throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")");
+        }
+        this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize));
+    },
+
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readCentralPart: function(reader) {
+        this.versionMadeBy = reader.readInt(2);
+        reader.skip(2);
+        // this.versionNeeded = reader.readInt(2);
+        this.bitFlag = reader.readInt(2);
+        this.compressionMethod = reader.readString(2);
+        this.date = reader.readDate();
+        this.crc32 = reader.readInt(4);
+        this.compressedSize = reader.readInt(4);
+        this.uncompressedSize = reader.readInt(4);
+        var fileNameLength = reader.readInt(2);
+        this.extraFieldsLength = reader.readInt(2);
+        this.fileCommentLength = reader.readInt(2);
+        this.diskNumberStart = reader.readInt(2);
+        this.internalFileAttributes = reader.readInt(2);
+        this.externalFileAttributes = reader.readInt(4);
+        this.localHeaderOffset = reader.readInt(4);
+
+        if (this.isEncrypted()) {
+            throw new Error("Encrypted zip are not supported");
+        }
+
+        // will be read in the local part, see the comments there
+        reader.skip(fileNameLength);
+        this.readExtraFields(reader);
+        this.parseZIP64ExtraField(reader);
+        this.fileComment = reader.readData(this.fileCommentLength);
+    },
+
+    /**
+     * Parse the external file attributes and get the unix/dos permissions.
+     */
+    processAttributes: function () {
+        this.unixPermissions = null;
+        this.dosPermissions = null;
+        var madeBy = this.versionMadeBy >> 8;
+
+        // Check if we have the DOS directory flag set.
+        // We look for it in the DOS and UNIX permissions
+        // but some unknown platform could set it as a compatibility flag.
+        this.dir = this.externalFileAttributes & 0x0010 ? true : false;
+
+        if(madeBy === MADE_BY_DOS) {
+            // first 6 bits (0 to 5)
+            this.dosPermissions = this.externalFileAttributes & 0x3F;
+        }
+
+        if(madeBy === MADE_BY_UNIX) {
+            this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF;
+            // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8);
+        }
+
+        // fail safe : if the name ends with a / it probably means a folder
+        if (!this.dir && this.fileNameStr.slice(-1) === '/') {
+            this.dir = true;
+        }
+    },
+
+    /**
+     * Parse the ZIP64 extra field and merge the info in the current ZipEntry.
+     * @param {DataReader} reader the reader to use.
+     */
+    parseZIP64ExtraField: function(reader) {
+
+        if (!this.extraFields[0x0001]) {
+            return;
+        }
+
+        // should be something, preparing the extra reader
+        var extraReader = readerFor(this.extraFields[0x0001].value);
+
+        // I really hope that these 64bits integer can fit in 32 bits integer, because js
+        // won't let us have more.
+        if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {
+            this.uncompressedSize = extraReader.readInt(8);
+        }
+        if (this.compressedSize === utils.MAX_VALUE_32BITS) {
+            this.compressedSize = extraReader.readInt(8);
+        }
+        if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {
+            this.localHeaderOffset = extraReader.readInt(8);
+        }
+        if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {
+            this.diskNumberStart = extraReader.readInt(4);
+        }
+    },
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readExtraFields: function(reader) {
+        var end = reader.index + this.extraFieldsLength,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+
+        if (!this.extraFields) {
+            this.extraFields = {};
+        }
+
+        while (reader.index < end) {
+            extraFieldId = reader.readInt(2);
+            extraFieldLength = reader.readInt(2);
+            extraFieldValue = reader.readData(extraFieldLength);
+
+            this.extraFields[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Apply an UTF8 transformation if needed.
+     */
+    handleUTF8: function() {
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        if (this.useUTF8()) {
+            this.fileNameStr = utf8.utf8decode(this.fileName);
+            this.fileCommentStr = utf8.utf8decode(this.fileComment);
+        } else {
+            var upath = this.findExtraFieldUnicodePath();
+            if (upath !== null) {
+                this.fileNameStr = upath;
+            } else {
+                // ASCII text or unsupported code page
+                var fileNameByteArray =  utils.transformTo(decodeParamType, this.fileName);
+                this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray);
+            }
+
+            var ucomment = this.findExtraFieldUnicodeComment();
+            if (ucomment !== null) {
+                this.fileCommentStr = ucomment;
+            } else {
+                // ASCII text or unsupported code page
+                var commentByteArray =  utils.transformTo(decodeParamType, this.fileComment);
+                this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray);
+            }
+        }
+    },
+
+    /**
+     * Find the unicode path declared in the extra field, if any.
+     * @return {String} the unicode path, null otherwise.
+     */
+    findExtraFieldUnicodePath: function() {
+        var upathField = this.extraFields[0x7075];
+        if (upathField) {
+            var extraReader = readerFor(upathField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the filename changed, this field is out of date.
+            if (crc32fn(this.fileName) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(upathField.length - 5));
+        }
+        return null;
+    },
+
+    /**
+     * Find the unicode comment declared in the extra field, if any.
+     * @return {String} the unicode comment, null otherwise.
+     */
+    findExtraFieldUnicodeComment: function() {
+        var ucommentField = this.extraFields[0x6375];
+        if (ucommentField) {
+            var extraReader = readerFor(ucommentField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the comment changed, this field is out of date.
+            if (crc32fn(this.fileComment) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(ucommentField.length - 5));
+        }
+        return null;
+    }
+};
+module.exports = ZipEntry;
+
+},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){
+'use strict';
+
+var StreamHelper = require('./stream/StreamHelper');
+var DataWorker = require('./stream/DataWorker');
+var utf8 = require('./utf8');
+var CompressedObject = require('./compressedObject');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * A simple object representing a file in the zip file.
+ * @constructor
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data
+ * @param {Object} options the options of the file
+ */
+var ZipObject = function(name, data, options) {
+    this.name = name;
+    this.dir = options.dir;
+    this.date = options.date;
+    this.comment = options.comment;
+    this.unixPermissions = options.unixPermissions;
+    this.dosPermissions = options.dosPermissions;
+
+    this._data = data;
+    this._dataBinary = options.binary;
+    // keep only the compression
+    this.options = {
+        compression : options.compression,
+        compressionOptions : options.compressionOptions
+    };
+};
+
+ZipObject.prototype = {
+    /**
+     * Create an internal stream for the content of this object.
+     * @param {String} type the type of each chunk.
+     * @return StreamHelper the stream.
+     */
+    internalStream: function (type) {
+        var result = null, outputType = "string";
+        try {
+            if (!type) {
+                throw new Error("No output type specified.");
+            }
+            outputType = type.toLowerCase();
+            var askUnicodeString = outputType === "string" || outputType === "text";
+            if (outputType === "binarystring" || outputType === "text") {
+                outputType = "string";
+            }
+            result = this._decompressWorker();
+
+            var isUnicodeString = !this._dataBinary;
+
+            if (isUnicodeString && !askUnicodeString) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            if (!isUnicodeString && askUnicodeString) {
+                result = result.pipe(new utf8.Utf8DecodeWorker());
+            }
+        } catch (e) {
+            result = new GenericWorker("error");
+            result.error(e);
+        }
+
+        return new StreamHelper(result, outputType, "");
+    },
+
+    /**
+     * Prepare the content in the asked type.
+     * @param {String} type the type of the result.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Promise the promise of the result.
+     */
+    async: function (type, onUpdate) {
+        return this.internalStream(type).accumulate(onUpdate);
+    },
+
+    /**
+     * Prepare the content as a nodejs stream.
+     * @param {String} type the type of each chunk.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Stream the stream.
+     */
+    nodeStream: function (type, onUpdate) {
+        return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate);
+    },
+
+    /**
+     * Return a worker for the compressed content.
+     * @private
+     * @param {Object} compression the compression object to use.
+     * @param {Object} compressionOptions the options to use when compressing.
+     * @return Worker the worker.
+     */
+    _compressWorker: function (compression, compressionOptions) {
+        if (
+            this._data instanceof CompressedObject &&
+            this._data.compression.magic === compression.magic
+        ) {
+            return this._data.getCompressedWorker();
+        } else {
+            var result = this._decompressWorker();
+            if(!this._dataBinary) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            return CompressedObject.createWorkerFrom(result, compression, compressionOptions);
+        }
+    },
+    /**
+     * Return a worker for the decompressed content.
+     * @private
+     * @return Worker the worker.
+     */
+    _decompressWorker : function () {
+        if (this._data instanceof CompressedObject) {
+            return this._data.getContentWorker();
+        } else if (this._data instanceof GenericWorker) {
+            return this._data;
+        } else {
+            return new DataWorker(this._data);
+        }
+    }
+};
+
+var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"];
+var removedFn = function () {
+    throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+};
+
+for(var i = 0; i < removedMethods.length; i++) {
+    ZipObject.prototype[removedMethods[i]] = removedFn;
+}
+module.exports = ZipObject;
+
+},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){
+require('../modules/web.immediate');
+module.exports = require('../modules/_core').setImmediate;
+},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(require,module,exports){
+module.exports = function(it){
+  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+  return it;
+};
+},{}],38:[function(require,module,exports){
+var isObject = require('./_is-object');
+module.exports = function(it){
+  if(!isObject(it))throw TypeError(it + ' is not an object!');
+  return it;
+};
+},{"./_is-object":51}],39:[function(require,module,exports){
+var toString = {}.toString;
+
+module.exports = function(it){
+  return toString.call(it).slice(8, -1);
+};
+},{}],40:[function(require,module,exports){
+var core = module.exports = {version: '2.3.0'};
+if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+},{}],41:[function(require,module,exports){
+// optional / simple context binding
+var aFunction = require('./_a-function');
+module.exports = function(fn, that, length){
+  aFunction(fn);
+  if(that === undefined)return fn;
+  switch(length){
+    case 1: return function(a){
+      return fn.call(that, a);
+    };
+    case 2: return function(a, b){
+      return fn.call(that, a, b);
+    };
+    case 3: return function(a, b, c){
+      return fn.call(that, a, b, c);
+    };
+  }
+  return function(/* ...args */){
+    return fn.apply(that, arguments);
+  };
+};
+},{"./_a-function":37}],42:[function(require,module,exports){
+// Thank's IE8 for his funny defineProperty
+module.exports = !require('./_fails')(function(){
+  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_fails":45}],43:[function(require,module,exports){
+var isObject = require('./_is-object')
+  , document = require('./_global').document
+  // in old IE typeof document.createElement is 'object'
+  , is = isObject(document) && isObject(document.createElement);
+module.exports = function(it){
+  return is ? document.createElement(it) : {};
+};
+},{"./_global":46,"./_is-object":51}],44:[function(require,module,exports){
+var global    = require('./_global')
+  , core      = require('./_core')
+  , ctx       = require('./_ctx')
+  , hide      = require('./_hide')
+  , PROTOTYPE = 'prototype';
+
+var $export = function(type, name, source){
+  var IS_FORCED = type & $export.F
+    , IS_GLOBAL = type & $export.G
+    , IS_STATIC = type & $export.S
+    , IS_PROTO  = type & $export.P
+    , IS_BIND   = type & $export.B
+    , IS_WRAP   = type & $export.W
+    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
+    , expProto  = exports[PROTOTYPE]
+    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+    , key, own, out;
+  if(IS_GLOBAL)source = name;
+  for(key in source){
+    // contains in native
+    own = !IS_FORCED && target && target[key] !== undefined;
+    if(own && key in exports)continue;
+    // export native or passed
+    out = own ? target[key] : source[key];
+    // prevent global pollution for namespaces
+    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+    // bind timers to global for call from export context
+    : IS_BIND && own ? ctx(out, global)
+    // wrap global constructors for prevent change them in library
+    : IS_WRAP && target[key] == out ? (function(C){
+      var F = function(a, b, c){
+        if(this instanceof C){
+          switch(arguments.length){
+            case 0: return new C;
+            case 1: return new C(a);
+            case 2: return new C(a, b);
+          } return new C(a, b, c);
+        } return C.apply(this, arguments);
+      };
+      F[PROTOTYPE] = C[PROTOTYPE];
+      return F;
+    // make static versions for prototype methods
+    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+    if(IS_PROTO){
+      (exports.virtual || (exports.virtual = {}))[key] = out;
+      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+    }
+  }
+};
+// type bitmap
+$export.F = 1;   // forced
+$export.G = 2;   // global
+$export.S = 4;   // static
+$export.P = 8;   // proto
+$export.B = 16;  // bind
+$export.W = 32;  // wrap
+$export.U = 64;  // safe
+$export.R = 128; // real proto method for `library` 
+module.exports = $export;
+},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(require,module,exports){
+module.exports = function(exec){
+  try {
+    return !!exec();
+  } catch(e){
+    return true;
+  }
+};
+},{}],46:[function(require,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+},{}],47:[function(require,module,exports){
+var dP         = require('./_object-dp')
+  , createDesc = require('./_property-desc');
+module.exports = require('./_descriptors') ? function(object, key, value){
+  return dP.f(object, key, createDesc(1, value));
+} : function(object, key, value){
+  object[key] = value;
+  return object;
+};
+},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(require,module,exports){
+module.exports = require('./_global').document && document.documentElement;
+},{"./_global":46}],49:[function(require,module,exports){
+module.exports = !require('./_descriptors') && !require('./_fails')(function(){
+  return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(require,module,exports){
+// fast apply, http://jsperf.lnkit.com/fast-apply/5
+module.exports = function(fn, args, that){
+  var un = that === undefined;
+  switch(args.length){
+    case 0: return un ? fn()
+                      : fn.call(that);
+    case 1: return un ? fn(args[0])
+                      : fn.call(that, args[0]);
+    case 2: return un ? fn(args[0], args[1])
+                      : fn.call(that, args[0], args[1]);
+    case 3: return un ? fn(args[0], args[1], args[2])
+                      : fn.call(that, args[0], args[1], args[2]);
+    case 4: return un ? fn(args[0], args[1], args[2], args[3])
+                      : fn.call(that, args[0], args[1], args[2], args[3]);
+  } return              fn.apply(that, args);
+};
+},{}],51:[function(require,module,exports){
+module.exports = function(it){
+  return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+},{}],52:[function(require,module,exports){
+var anObject       = require('./_an-object')
+  , IE8_DOM_DEFINE = require('./_ie8-dom-define')
+  , toPrimitive    = require('./_to-primitive')
+  , dP             = Object.defineProperty;
+
+exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
+  anObject(O);
+  P = toPrimitive(P, true);
+  anObject(Attributes);
+  if(IE8_DOM_DEFINE)try {
+    return dP(O, P, Attributes);
+  } catch(e){ /* empty */ }
+  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+  if('value' in Attributes)O[P] = Attributes.value;
+  return O;
+};
+},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(require,module,exports){
+module.exports = function(bitmap, value){
+  return {
+    enumerable  : !(bitmap & 1),
+    configurable: !(bitmap & 2),
+    writable    : !(bitmap & 4),
+    value       : value
+  };
+};
+},{}],54:[function(require,module,exports){
+var ctx                = require('./_ctx')
+  , invoke             = require('./_invoke')
+  , html               = require('./_html')
+  , cel                = require('./_dom-create')
+  , global             = require('./_global')
+  , process            = global.process
+  , setTask            = global.setImmediate
+  , clearTask          = global.clearImmediate
+  , MessageChannel     = global.MessageChannel
+  , counter            = 0
+  , queue              = {}
+  , ONREADYSTATECHANGE = 'onreadystatechange'
+  , defer, channel, port;
+var run = function(){
+  var id = +this;
+  if(queue.hasOwnProperty(id)){
+    var fn = queue[id];
+    delete queue[id];
+    fn();
+  }
+};
+var listener = function(event){
+  run.call(event.data);
+};
+// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
+if(!setTask || !clearTask){
+  setTask = function setImmediate(fn){
+    var args = [], i = 1;
+    while(arguments.length > i)args.push(arguments[i++]);
+    queue[++counter] = function(){
+      invoke(typeof fn == 'function' ? fn : Function(fn), args);
+    };
+    defer(counter);
+    return counter;
+  };
+  clearTask = function clearImmediate(id){
+    delete queue[id];
+  };
+  // Node.js 0.8-
+  if(require('./_cof')(process) == 'process'){
+    defer = function(id){
+      process.nextTick(ctx(run, id, 1));
+    };
+  // Browsers with MessageChannel, includes WebWorkers
+  } else if(MessageChannel){
+    channel = new MessageChannel;
+    port    = channel.port2;
+    channel.port1.onmessage = listener;
+    defer = ctx(port.postMessage, port, 1);
+  // Browsers with postMessage, skip WebWorkers
+  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
+  } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
+    defer = function(id){
+      global.postMessage(id + '', '*');
+    };
+    global.addEventListener('message', listener, false);
+  // IE8-
+  } else if(ONREADYSTATECHANGE in cel('script')){
+    defer = function(id){
+      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
+        html.removeChild(this);
+        run.call(id);
+      };
+    };
+  // Rest old browsers
+  } else {
+    defer = function(id){
+      setTimeout(ctx(run, id, 1), 0);
+    };
+  }
+}
+module.exports = {
+  set:   setTask,
+  clear: clearTask
+};
+},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(require,module,exports){
+// 7.1.1 ToPrimitive(input [, PreferredType])
+var isObject = require('./_is-object');
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+module.exports = function(it, S){
+  if(!isObject(it))return it;
+  var fn, val;
+  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  throw TypeError("Can't convert object to primitive value");
+};
+},{"./_is-object":51}],56:[function(require,module,exports){
+var $export = require('./_export')
+  , $task   = require('./_task');
+$export($export.G + $export.B, {
+  setImmediate:   $task.set,
+  clearImmediate: $task.clear
+});
+},{"./_export":44,"./_task":54}],57:[function(require,module,exports){
+(function (global){
+'use strict';
+var Mutation = global.MutationObserver || global.WebKitMutationObserver;
+
+var scheduleDrain;
+
+{
+  if (Mutation) {
+    var called = 0;
+    var observer = new Mutation(nextTick);
+    var element = global.document.createTextNode('');
+    observer.observe(element, {
+      characterData: true
+    });
+    scheduleDrain = function () {
+      element.data = (called = ++called % 2);
+    };
+  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
+    var channel = new global.MessageChannel();
+    channel.port1.onmessage = nextTick;
+    scheduleDrain = function () {
+      channel.port2.postMessage(0);
+    };
+  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
+    scheduleDrain = function () {
+
+      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
+      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
+      var scriptEl = global.document.createElement('script');
+      scriptEl.onreadystatechange = function () {
+        nextTick();
+
+        scriptEl.onreadystatechange = null;
+        scriptEl.parentNode.removeChild(scriptEl);
+        scriptEl = null;
+      };
+      global.document.documentElement.appendChild(scriptEl);
+    };
+  } else {
+    scheduleDrain = function () {
+      setTimeout(nextTick, 0);
+    };
+  }
+}
+
+var draining;
+var queue = [];
+//named nextTick for less confusing stack traces
+function nextTick() {
+  draining = true;
+  var i, oldQueue;
+  var len = queue.length;
+  while (len) {
+    oldQueue = queue;
+    queue = [];
+    i = -1;
+    while (++i < len) {
+      oldQueue[i]();
+    }
+    len = queue.length;
+  }
+  draining = false;
+}
+
+module.exports = immediate;
+function immediate(task) {
+  if (queue.push(task) === 1 && !draining) {
+    scheduleDrain();
+  }
+}
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],58:[function(require,module,exports){
+'use strict';
+var immediate = require('immediate');
+
+/* istanbul ignore next */
+function INTERNAL() {}
+
+var handlers = {};
+
+var REJECTED = ['REJECTED'];
+var FULFILLED = ['FULFILLED'];
+var PENDING = ['PENDING'];
+
+module.exports = Promise;
+
+function Promise(resolver) {
+  if (typeof resolver !== 'function') {
+    throw new TypeError('resolver must be a function');
+  }
+  this.state = PENDING;
+  this.queue = [];
+  this.outcome = void 0;
+  if (resolver !== INTERNAL) {
+    safelyResolveThenable(this, resolver);
+  }
+}
+
+Promise.prototype["catch"] = function (onRejected) {
+  return this.then(null, onRejected);
+};
+Promise.prototype.then = function (onFulfilled, onRejected) {
+  if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||
+    typeof onRejected !== 'function' && this.state === REJECTED) {
+    return this;
+  }
+  var promise = new this.constructor(INTERNAL);
+  if (this.state !== PENDING) {
+    var resolver = this.state === FULFILLED ? onFulfilled : onRejected;
+    unwrap(promise, resolver, this.outcome);
+  } else {
+    this.queue.push(new QueueItem(promise, onFulfilled, onRejected));
+  }
+
+  return promise;
+};
+function QueueItem(promise, onFulfilled, onRejected) {
+  this.promise = promise;
+  if (typeof onFulfilled === 'function') {
+    this.onFulfilled = onFulfilled;
+    this.callFulfilled = this.otherCallFulfilled;
+  }
+  if (typeof onRejected === 'function') {
+    this.onRejected = onRejected;
+    this.callRejected = this.otherCallRejected;
+  }
+}
+QueueItem.prototype.callFulfilled = function (value) {
+  handlers.resolve(this.promise, value);
+};
+QueueItem.prototype.otherCallFulfilled = function (value) {
+  unwrap(this.promise, this.onFulfilled, value);
+};
+QueueItem.prototype.callRejected = function (value) {
+  handlers.reject(this.promise, value);
+};
+QueueItem.prototype.otherCallRejected = function (value) {
+  unwrap(this.promise, this.onRejected, value);
+};
+
+function unwrap(promise, func, value) {
+  immediate(function () {
+    var returnValue;
+    try {
+      returnValue = func(value);
+    } catch (e) {
+      return handlers.reject(promise, e);
+    }
+    if (returnValue === promise) {
+      handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));
+    } else {
+      handlers.resolve(promise, returnValue);
+    }
+  });
+}
+
+handlers.resolve = function (self, value) {
+  var result = tryCatch(getThen, value);
+  if (result.status === 'error') {
+    return handlers.reject(self, result.value);
+  }
+  var thenable = result.value;
+
+  if (thenable) {
+    safelyResolveThenable(self, thenable);
+  } else {
+    self.state = FULFILLED;
+    self.outcome = value;
+    var i = -1;
+    var len = self.queue.length;
+    while (++i < len) {
+      self.queue[i].callFulfilled(value);
+    }
+  }
+  return self;
+};
+handlers.reject = function (self, error) {
+  self.state = REJECTED;
+  self.outcome = error;
+  var i = -1;
+  var len = self.queue.length;
+  while (++i < len) {
+    self.queue[i].callRejected(error);
+  }
+  return self;
+};
+
+function getThen(obj) {
+  // Make sure we only access the accessor once as required by the spec
+  var then = obj && obj.then;
+  if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {
+    return function appyThen() {
+      then.apply(obj, arguments);
+    };
+  }
+}
+
+function safelyResolveThenable(self, thenable) {
+  // Either fulfill, reject or reject with error
+  var called = false;
+  function onError(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.reject(self, value);
+  }
+
+  function onSuccess(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.resolve(self, value);
+  }
+
+  function tryToUnwrap() {
+    thenable(onSuccess, onError);
+  }
+
+  var result = tryCatch(tryToUnwrap);
+  if (result.status === 'error') {
+    onError(result.value);
+  }
+}
+
+function tryCatch(func, value) {
+  var out = {};
+  try {
+    out.value = func(value);
+    out.status = 'success';
+  } catch (e) {
+    out.status = 'error';
+    out.value = e;
+  }
+  return out;
+}
+
+Promise.resolve = resolve;
+function resolve(value) {
+  if (value instanceof this) {
+    return value;
+  }
+  return handlers.resolve(new this(INTERNAL), value);
+}
+
+Promise.reject = reject;
+function reject(reason) {
+  var promise = new this(INTERNAL);
+  return handlers.reject(promise, reason);
+}
+
+Promise.all = all;
+function all(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var values = new Array(len);
+  var resolved = 0;
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    allResolver(iterable[i], i);
+  }
+  return promise;
+  function allResolver(value, i) {
+    self.resolve(value).then(resolveFromAll, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+    function resolveFromAll(outValue) {
+      values[i] = outValue;
+      if (++resolved === len && !called) {
+        called = true;
+        handlers.resolve(promise, values);
+      }
+    }
+  }
+}
+
+Promise.race = race;
+function race(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    resolver(iterable[i]);
+  }
+  return promise;
+  function resolver(value) {
+    self.resolve(value).then(function (response) {
+      if (!called) {
+        called = true;
+        handlers.resolve(promise, response);
+      }
+    }, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+  }
+}
+
+},{"immediate":57}],59:[function(require,module,exports){
+// Top level file is just a mixin of submodules & constants
+'use strict';
+
+var assign    = require('./lib/utils/common').assign;
+
+var deflate   = require('./lib/deflate');
+var inflate   = require('./lib/inflate');
+var constants = require('./lib/zlib/constants');
+
+var pako = {};
+
+assign(pako, deflate, inflate, constants);
+
+module.exports = pako;
+
+},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(require,module,exports){
+'use strict';
+
+
+var zlib_deflate = require('./zlib/deflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+
+var toString = Object.prototype.toString;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+var Z_NO_FLUSH      = 0;
+var Z_FINISH        = 4;
+
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_SYNC_FLUSH    = 2;
+
+var Z_DEFAULT_COMPRESSION = -1;
+
+var Z_DEFAULT_STRATEGY    = 0;
+
+var Z_DEFLATED  = 8;
+
+/* ===========================================================================*/
+
+
+/**
+ * class Deflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[deflate]],
+ * [[deflateRaw]] and [[gzip]].
+ **/
+
+/* internal
+ * Deflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Deflate#onData]] not overriden.
+ **/
+
+/**
+ * Deflate.result -> Uint8Array|Array
+ *
+ * Compressed result, generated by default [[Deflate#onData]]
+ * and [[Deflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Deflate#push]] with `Z_FINISH` / `true` param)  or if you
+ * push a chunk with explicit flush (call [[Deflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Deflate.err -> Number
+ *
+ * Error code after deflate finished. 0 (Z_OK) on success.
+ * You will not need it in real life, because deflate errors
+ * are possible only on wrong options or bad `onData` / `onEnd`
+ * custom handlers.
+ **/
+
+/**
+ * Deflate.msg -> String
+ *
+ * Error message, if [[Deflate.err]] != 0
+ **/
+
+
+/**
+ * new Deflate(options)
+ * - options (Object): zlib deflate options.
+ *
+ * Creates new deflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `level`
+ * - `windowBits`
+ * - `memLevel`
+ * - `strategy`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw deflate
+ * - `gzip` (Boolean) - create gzip wrapper
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ * - `header` (Object) - custom header for gzip
+ *   - `text` (Boolean) - true if compressed data believed to be text
+ *   - `time` (Number) - modification time, unix timestamp
+ *   - `os` (Number) - operation system code
+ *   - `extra` (Array) - array of bytes with extra data (max 65536)
+ *   - `name` (String) - file name (binary string)
+ *   - `comment` (String) - comment (binary string)
+ *   - `hcrc` (Boolean) - true if header crc should be added
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var deflate = new pako.Deflate({ level: 3});
+ *
+ * deflate.push(chunk1, false);
+ * deflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (deflate.err) { throw new Error(deflate.err); }
+ *
+ * console.log(deflate.result);
+ * ```
+ **/
+function Deflate(options) {
+  if (!(this instanceof Deflate)) return new Deflate(options);
+
+  this.options = utils.assign({
+    level: Z_DEFAULT_COMPRESSION,
+    method: Z_DEFLATED,
+    chunkSize: 16384,
+    windowBits: 15,
+    memLevel: 8,
+    strategy: Z_DEFAULT_STRATEGY,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  if (opt.raw && (opt.windowBits > 0)) {
+    opt.windowBits = -opt.windowBits;
+  }
+
+  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {
+    opt.windowBits += 16;
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status = zlib_deflate.deflateInit2(
+    this.strm,
+    opt.level,
+    opt.method,
+    opt.windowBits,
+    opt.memLevel,
+    opt.strategy
+  );
+
+  if (status !== Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  if (opt.header) {
+    zlib_deflate.deflateSetHeader(this.strm, opt.header);
+  }
+
+  if (opt.dictionary) {
+    var dict;
+    // Convert data if needed
+    if (typeof opt.dictionary === 'string') {
+      // If we need to compress text, change encoding to utf8.
+      dict = strings.string2buf(opt.dictionary);
+    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
+      dict = new Uint8Array(opt.dictionary);
+    } else {
+      dict = opt.dictionary;
+    }
+
+    status = zlib_deflate.deflateSetDictionary(this.strm, dict);
+
+    if (status !== Z_OK) {
+      throw new Error(msg[status]);
+    }
+
+    this._dict_set = true;
+  }
+}
+
+/**
+ * Deflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be
+ *   converted to utf8 byte sequence.
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
+ * new compressed chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the compression context.
+ *
+ * On fail call [[Deflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * array format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Deflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var status, _mode;
+
+  if (this.ended) { return false; }
+
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // If we need to compress text, change encoding to utf8.
+    strm.input = strings.string2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+    status = zlib_deflate.deflate(strm, _mode);    /* no bad return value */
+
+    if (status !== Z_STREAM_END && status !== Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+    if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {
+      if (this.options.to === 'string') {
+        this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
+      } else {
+        this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+      }
+    }
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
+
+  // Finalize on the last chunk.
+  if (_mode === Z_FINISH) {
+    status = zlib_deflate.deflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === Z_SYNC_FLUSH) {
+    this.onEnd(Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Deflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Deflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Deflate#onEnd(status) -> Void
+ * - status (Number): deflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called once after you tell deflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Deflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === Z_OK) {
+    if (this.options.to === 'string') {
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * deflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * Compress `data` with deflate algorithm and `options`.
+ *
+ * Supported options are:
+ *
+ * - level
+ * - windowBits
+ * - memLevel
+ * - strategy
+ * - dictionary
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
+ *
+ * console.log(pako.deflate(data));
+ * ```
+ **/
+function deflate(input, options) {
+  var deflator = new Deflate(options);
+
+  deflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (deflator.err) { throw deflator.msg || msg[deflator.err]; }
+
+  return deflator.result;
+}
+
+
+/**
+ * deflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function deflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return deflate(input, options);
+}
+
+
+/**
+ * gzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but create gzip wrapper instead of
+ * deflate one.
+ **/
+function gzip(input, options) {
+  options = options || {};
+  options.gzip = true;
+  return deflate(input, options);
+}
+
+
+exports.Deflate = Deflate;
+exports.deflate = deflate;
+exports.deflateRaw = deflateRaw;
+exports.gzip = gzip;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(require,module,exports){
+'use strict';
+
+
+var zlib_inflate = require('./zlib/inflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var c            = require('./zlib/constants');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+var GZheader     = require('./zlib/gzheader');
+
+var toString = Object.prototype.toString;
+
+/**
+ * class Inflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[inflate]]
+ * and [[inflateRaw]].
+ **/
+
+/* internal
+ * inflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Inflate#onData]] not overriden.
+ **/
+
+/**
+ * Inflate.result -> Uint8Array|Array|String
+ *
+ * Uncompressed result, generated by default [[Inflate#onData]]
+ * and [[Inflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
+ * push a chunk with explicit flush (call [[Inflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Inflate.err -> Number
+ *
+ * Error code after inflate finished. 0 (Z_OK) on success.
+ * Should be checked if broken data possible.
+ **/
+
+/**
+ * Inflate.msg -> String
+ *
+ * Error message, if [[Inflate.err]] != 0
+ **/
+
+
+/**
+ * new Inflate(options)
+ * - options (Object): zlib inflate options.
+ *
+ * Creates new inflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `windowBits`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw inflate
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ * By default, when no options set, autodetect deflate/gzip data format via
+ * wrapper header.
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var inflate = new pako.Inflate({ level: 3});
+ *
+ * inflate.push(chunk1, false);
+ * inflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (inflate.err) { throw new Error(inflate.err); }
+ *
+ * console.log(inflate.result);
+ * ```
+ **/
+function Inflate(options) {
+  if (!(this instanceof Inflate)) return new Inflate(options);
+
+  this.options = utils.assign({
+    chunkSize: 16384,
+    windowBits: 0,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  // Force window size for `raw` data, if not set directly,
+  // because we have no header for autodetect.
+  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {
+    opt.windowBits = -opt.windowBits;
+    if (opt.windowBits === 0) { opt.windowBits = -15; }
+  }
+
+  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate
+  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&
+      !(options && options.windowBits)) {
+    opt.windowBits += 32;
+  }
+
+  // Gzip header has no info about windows size, we can do autodetect only
+  // for deflate. So, if window size not set, force it to max when gzip possible
+  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {
+    // bit 3 (16) -> gzipped data
+    // bit 4 (32) -> autodetect gzip/deflate
+    if ((opt.windowBits & 15) === 0) {
+      opt.windowBits |= 15;
+    }
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm   = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status  = zlib_inflate.inflateInit2(
+    this.strm,
+    opt.windowBits
+  );
+
+  if (status !== c.Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  this.header = new GZheader();
+
+  zlib_inflate.inflateGetHeader(this.strm, this.header);
+}
+
+/**
+ * Inflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
+ * new output chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the decompression context.
+ *
+ * On fail call [[Inflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Inflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var dictionary = this.options.dictionary;
+  var status, _mode;
+  var next_out_utf8, tail, utf8str;
+  var dict;
+
+  // Flag to properly process Z_BUF_ERROR on testing inflate call
+  // when we check that all output data was flushed.
+  var allowBufError = false;
+
+  if (this.ended) { return false; }
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // Only binary strings can be decompressed on practice
+    strm.input = strings.binstring2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+
+    status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);    /* no bad return value */
+
+    if (status === c.Z_NEED_DICT && dictionary) {
+      // Convert data if needed
+      if (typeof dictionary === 'string') {
+        dict = strings.string2buf(dictionary);
+      } else if (toString.call(dictionary) === '[object ArrayBuffer]') {
+        dict = new Uint8Array(dictionary);
+      } else {
+        dict = dictionary;
+      }
+
+      status = zlib_inflate.inflateSetDictionary(this.strm, dict);
+
+    }
+
+    if (status === c.Z_BUF_ERROR && allowBufError === true) {
+      status = c.Z_OK;
+      allowBufError = false;
+    }
+
+    if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+
+    if (strm.next_out) {
+      if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {
+
+        if (this.options.to === 'string') {
+
+          next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
+
+          tail = strm.next_out - next_out_utf8;
+          utf8str = strings.buf2string(strm.output, next_out_utf8);
+
+          // move tail
+          strm.next_out = tail;
+          strm.avail_out = chunkSize - tail;
+          if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }
+
+          this.onData(utf8str);
+
+        } else {
+          this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+        }
+      }
+    }
+
+    // When no more input data, we should check that internal inflate buffers
+    // are flushed. The only way to do it when avail_out = 0 - run one more
+    // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.
+    // Here we set flag to process this error properly.
+    //
+    // NOTE. Deflate does not return error in this case and does not needs such
+    // logic.
+    if (strm.avail_in === 0 && strm.avail_out === 0) {
+      allowBufError = true;
+    }
+
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
+
+  if (status === c.Z_STREAM_END) {
+    _mode = c.Z_FINISH;
+  }
+
+  // Finalize on the last chunk.
+  if (_mode === c.Z_FINISH) {
+    status = zlib_inflate.inflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === c.Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === c.Z_SYNC_FLUSH) {
+    this.onEnd(c.Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Inflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Inflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Inflate#onEnd(status) -> Void
+ * - status (Number): inflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called either after you tell inflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Inflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === c.Z_OK) {
+    if (this.options.to === 'string') {
+      // Glue & convert here, until we teach pako to send
+      // utf8 alligned strings to onData
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * inflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Decompress `data` with inflate/ungzip and `options`. Autodetect
+ * format via wrapper header by default. That's why we don't provide
+ * separate `ungzip` method.
+ *
+ * Supported options are:
+ *
+ * - windowBits
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])
+ *   , output;
+ *
+ * try {
+ *   output = pako.inflate(input);
+ * } catch (err)
+ *   console.log(err);
+ * }
+ * ```
+ **/
+function inflate(input, options) {
+  var inflator = new Inflate(options);
+
+  inflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (inflator.err) { throw inflator.msg || msg[inflator.err]; }
+
+  return inflator.result;
+}
+
+
+/**
+ * inflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * The same as [[inflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function inflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return inflate(input, options);
+}
+
+
+/**
+ * ungzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Just shortcut to [[inflate]], because it autodetects format
+ * by header.content. Done for convenience.
+ **/
+
+
+exports.Inflate = Inflate;
+exports.inflate = inflate;
+exports.inflateRaw = inflateRaw;
+exports.ungzip  = inflate;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(require,module,exports){
+'use strict';
+
+
+var TYPED_OK =  (typeof Uint8Array !== 'undefined') &&
+                (typeof Uint16Array !== 'undefined') &&
+                (typeof Int32Array !== 'undefined');
+
+
+exports.assign = function (obj /*from1, from2, from3, ...*/) {
+  var sources = Array.prototype.slice.call(arguments, 1);
+  while (sources.length) {
+    var source = sources.shift();
+    if (!source) { continue; }
+
+    if (typeof source !== 'object') {
+      throw new TypeError(source + 'must be non-object');
+    }
+
+    for (var p in source) {
+      if (source.hasOwnProperty(p)) {
+        obj[p] = source[p];
+      }
+    }
+  }
+
+  return obj;
+};
+
+
+// reduce buffer size, avoiding mem copy
+exports.shrinkBuf = function (buf, size) {
+  if (buf.length === size) { return buf; }
+  if (buf.subarray) { return buf.subarray(0, size); }
+  buf.length = size;
+  return buf;
+};
+
+
+var fnTyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    if (src.subarray && dest.subarray) {
+      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
+      return;
+    }
+    // Fallback to ordinary array
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    var i, l, len, pos, chunk, result;
+
+    // calculate data length
+    len = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      len += chunks[i].length;
+    }
+
+    // join chunks
+    result = new Uint8Array(len);
+    pos = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      chunk = chunks[i];
+      result.set(chunk, pos);
+      pos += chunk.length;
+    }
+
+    return result;
+  }
+};
+
+var fnUntyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    return [].concat.apply([], chunks);
+  }
+};
+
+
+// Enable/Disable typed arrays use, for testing
+//
+exports.setTyped = function (on) {
+  if (on) {
+    exports.Buf8  = Uint8Array;
+    exports.Buf16 = Uint16Array;
+    exports.Buf32 = Int32Array;
+    exports.assign(exports, fnTyped);
+  } else {
+    exports.Buf8  = Array;
+    exports.Buf16 = Array;
+    exports.Buf32 = Array;
+    exports.assign(exports, fnUntyped);
+  }
+};
+
+exports.setTyped(TYPED_OK);
+
+},{}],63:[function(require,module,exports){
+// String encode/decode helpers
+'use strict';
+
+
+var utils = require('./common');
+
+
+// Quick check if we can use fast array to bin string conversion
+//
+// - apply(Array) can fail on Android 2.2
+// - apply(Uint8Array) can fail on iOS 5.1 Safary
+//
+var STR_APPLY_OK = true;
+var STR_APPLY_UIA_OK = true;
+
+try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }
+try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }
+
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new utils.Buf8(256);
+for (var q = 0; q < 256; q++) {
+  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
+}
+_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
+
+
+// convert string to array (typed, when possible)
+exports.string2buf = function (str) {
+  var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+  // count binary size
+  for (m_pos = 0; m_pos < str_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+  }
+
+  // allocate buffer
+  buf = new utils.Buf8(buf_len);
+
+  // convert
+  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    if (c < 0x80) {
+      /* one byte */
+      buf[i++] = c;
+    } else if (c < 0x800) {
+      /* two bytes */
+      buf[i++] = 0xC0 | (c >>> 6);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else if (c < 0x10000) {
+      /* three bytes */
+      buf[i++] = 0xE0 | (c >>> 12);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else {
+      /* four bytes */
+      buf[i++] = 0xf0 | (c >>> 18);
+      buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    }
+  }
+
+  return buf;
+};
+
+// Helper (used in 2 places)
+function buf2binstring(buf, len) {
+  // use fallback for big arrays to avoid stack overflow
+  if (len < 65537) {
+    if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {
+      return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
+    }
+  }
+
+  var result = '';
+  for (var i = 0; i < len; i++) {
+    result += String.fromCharCode(buf[i]);
+  }
+  return result;
+}
+
+
+// Convert byte array to binary string
+exports.buf2binstring = function (buf) {
+  return buf2binstring(buf, buf.length);
+};
+
+
+// Convert binary string (typed, when possible)
+exports.binstring2buf = function (str) {
+  var buf = new utils.Buf8(str.length);
+  for (var i = 0, len = buf.length; i < len; i++) {
+    buf[i] = str.charCodeAt(i);
+  }
+  return buf;
+};
+
+
+// convert array to string
+exports.buf2string = function (buf, max) {
+  var i, out, c, c_len;
+  var len = max || buf.length;
+
+  // Reserve max possible length (2 words per char)
+  // NB: by unknown reasons, Array is significantly faster for
+  //     String.fromCharCode.apply than Uint16Array.
+  var utf16buf = new Array(len * 2);
+
+  for (out = 0, i = 0; i < len;) {
+    c = buf[i++];
+    // quick process ascii
+    if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+    c_len = _utf8len[c];
+    // skip 5 & 6 byte codes
+    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
+
+    // apply mask on first byte
+    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+    // join the rest
+    while (c_len > 1 && i < len) {
+      c = (c << 6) | (buf[i++] & 0x3f);
+      c_len--;
+    }
+
+    // terminated by end of string?
+    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+    if (c < 0x10000) {
+      utf16buf[out++] = c;
+    } else {
+      c -= 0x10000;
+      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+      utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+    }
+  }
+
+  return buf2binstring(utf16buf, out);
+};
+
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+exports.utf8border = function (buf, max) {
+  var pos;
+
+  max = max || buf.length;
+  if (max > buf.length) { max = buf.length; }
+
+  // go back from last position, until start of sequence found
+  pos = max - 1;
+  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+  // Fuckup - very small and broken sequence,
+  // return max, because we should return something anyway.
+  if (pos < 0) { return max; }
+
+  // If we came to start of buffer - that means vuffer is too small,
+  // return max too.
+  if (pos === 0) { return max; }
+
+  return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+},{"./common":62}],64:[function(require,module,exports){
+'use strict';
+
+// Note: adler32 takes 12% for level 0 and 2% for level 6.
+// It doesn't worth to make additional optimizationa as in original.
+// Small size is preferable.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function adler32(adler, buf, len, pos) {
+  var s1 = (adler & 0xffff) |0,
+      s2 = ((adler >>> 16) & 0xffff) |0,
+      n = 0;
+
+  while (len !== 0) {
+    // Set limit ~ twice less than 5552, to keep
+    // s2 in 31-bits, because we force signed ints.
+    // in other case %= will fail.
+    n = len > 2000 ? 2000 : len;
+    len -= n;
+
+    do {
+      s1 = (s1 + buf[pos++]) |0;
+      s2 = (s2 + s1) |0;
+    } while (--n);
+
+    s1 %= 65521;
+    s2 %= 65521;
+  }
+
+  return (s1 | (s2 << 16)) |0;
+}
+
+
+module.exports = adler32;
+
+},{}],65:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+
+  /* Allowed flush values; see deflate() and inflate() below for details */
+  Z_NO_FLUSH:         0,
+  Z_PARTIAL_FLUSH:    1,
+  Z_SYNC_FLUSH:       2,
+  Z_FULL_FLUSH:       3,
+  Z_FINISH:           4,
+  Z_BLOCK:            5,
+  Z_TREES:            6,
+
+  /* Return codes for the compression/decompression functions. Negative values
+  * are errors, positive values are used for special but normal events.
+  */
+  Z_OK:               0,
+  Z_STREAM_END:       1,
+  Z_NEED_DICT:        2,
+  Z_ERRNO:           -1,
+  Z_STREAM_ERROR:    -2,
+  Z_DATA_ERROR:      -3,
+  //Z_MEM_ERROR:     -4,
+  Z_BUF_ERROR:       -5,
+  //Z_VERSION_ERROR: -6,
+
+  /* compression levels */
+  Z_NO_COMPRESSION:         0,
+  Z_BEST_SPEED:             1,
+  Z_BEST_COMPRESSION:       9,
+  Z_DEFAULT_COMPRESSION:   -1,
+
+
+  Z_FILTERED:               1,
+  Z_HUFFMAN_ONLY:           2,
+  Z_RLE:                    3,
+  Z_FIXED:                  4,
+  Z_DEFAULT_STRATEGY:       0,
+
+  /* Possible values of the data_type field (though see inflate()) */
+  Z_BINARY:                 0,
+  Z_TEXT:                   1,
+  //Z_ASCII:                1, // = Z_TEXT (deprecated)
+  Z_UNKNOWN:                2,
+
+  /* The deflate compression method */
+  Z_DEFLATED:               8
+  //Z_NULL:                 null // Use -1 or null inline, depending on var type
+};
+
+},{}],66:[function(require,module,exports){
+'use strict';
+
+// Note: we can't get significant speed boost here.
+// So write code to minimize size - no pregenerated tables
+// and array tools dependencies.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+  var c, table = [];
+
+  for (var n = 0; n < 256; n++) {
+    c = n;
+    for (var k = 0; k < 8; k++) {
+      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+    }
+    table[n] = c;
+  }
+
+  return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+  var t = crcTable,
+      end = pos + len;
+
+  crc ^= -1;
+
+  for (var i = pos; i < end; i++) {
+    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+  }
+
+  return (crc ^ (-1)); // >>> 0;
+}
+
+
+module.exports = crc32;
+
+},{}],67:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils   = require('../utils/common');
+var trees   = require('./trees');
+var adler32 = require('./adler32');
+var crc32   = require('./crc32');
+var msg     = require('./messages');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+var Z_NO_FLUSH      = 0;
+var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+//var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+//var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+//var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+
+/* compression levels */
+//var Z_NO_COMPRESSION      = 0;
+//var Z_BEST_SPEED          = 1;
+//var Z_BEST_COMPRESSION    = 9;
+var Z_DEFAULT_COMPRESSION = -1;
+
+
+var Z_FILTERED            = 1;
+var Z_HUFFMAN_ONLY        = 2;
+var Z_RLE                 = 3;
+var Z_FIXED               = 4;
+var Z_DEFAULT_STRATEGY    = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+//var Z_BINARY              = 0;
+//var Z_TEXT                = 1;
+//var Z_ASCII               = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+/*============================================================================*/
+
+
+var MAX_MEM_LEVEL = 9;
+/* Maximum value for memLevel in deflateInit2 */
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_MEM_LEVEL = 8;
+
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+var D_CODES       = 30;
+/* number of distance codes */
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+var MAX_BITS  = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var MIN_MATCH = 3;
+var MAX_MATCH = 258;
+var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);
+
+var PRESET_DICT = 0x20;
+
+var INIT_STATE = 42;
+var EXTRA_STATE = 69;
+var NAME_STATE = 73;
+var COMMENT_STATE = 91;
+var HCRC_STATE = 103;
+var BUSY_STATE = 113;
+var FINISH_STATE = 666;
+
+var BS_NEED_MORE      = 1; /* block not completed, need more input or more output */
+var BS_BLOCK_DONE     = 2; /* block flush performed */
+var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */
+var BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */
+
+var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.
+
+function err(strm, errorCode) {
+  strm.msg = msg[errorCode];
+  return errorCode;
+}
+
+function rank(f) {
+  return ((f) << 1) - ((f) > 4 ? 9 : 0);
+}
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+
+/* =========================================================================
+ * Flush as much pending output as possible. All deflate() output goes
+ * through this function so some applications may wish to modify it
+ * to avoid allocating a large strm->output buffer and copying into it.
+ * (See also read_buf()).
+ */
+function flush_pending(strm) {
+  var s = strm.state;
+
+  //_tr_flush_bits(s);
+  var len = s.pending;
+  if (len > strm.avail_out) {
+    len = strm.avail_out;
+  }
+  if (len === 0) { return; }
+
+  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
+  strm.next_out += len;
+  s.pending_out += len;
+  strm.total_out += len;
+  strm.avail_out -= len;
+  s.pending -= len;
+  if (s.pending === 0) {
+    s.pending_out = 0;
+  }
+}
+
+
+function flush_block_only(s, last) {
+  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);
+  s.block_start = s.strstart;
+  flush_pending(s.strm);
+}
+
+
+function put_byte(s, b) {
+  s.pending_buf[s.pending++] = b;
+}
+
+
+/* =========================================================================
+ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
+ * IN assertion: the stream state is correct and there is enough room in
+ * pending_buf.
+ */
+function putShortMSB(s, b) {
+//  put_byte(s, (Byte)(b >> 8));
+//  put_byte(s, (Byte)(b & 0xff));
+  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;
+  s.pending_buf[s.pending++] = b & 0xff;
+}
+
+
+/* ===========================================================================
+ * Read a new buffer from the current input stream, update the adler32
+ * and total number of bytes read.  All deflate() input goes through
+ * this function so some applications may wish to modify it to avoid
+ * allocating a large strm->input buffer and copying from it.
+ * (See also flush_pending()).
+ */
+function read_buf(strm, buf, start, size) {
+  var len = strm.avail_in;
+
+  if (len > size) { len = size; }
+  if (len === 0) { return 0; }
+
+  strm.avail_in -= len;
+
+  // zmemcpy(buf, strm->next_in, len);
+  utils.arraySet(buf, strm.input, strm.next_in, len, start);
+  if (strm.state.wrap === 1) {
+    strm.adler = adler32(strm.adler, buf, len, start);
+  }
+
+  else if (strm.state.wrap === 2) {
+    strm.adler = crc32(strm.adler, buf, len, start);
+  }
+
+  strm.next_in += len;
+  strm.total_in += len;
+
+  return len;
+}
+
+
+/* ===========================================================================
+ * Set match_start to the longest match starting at the given string and
+ * return its length. Matches shorter or equal to prev_length are discarded,
+ * in which case the result is equal to prev_length and match_start is
+ * garbage.
+ * IN assertions: cur_match is the head of the hash chain for the current
+ *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
+ * OUT assertion: the match length is not greater than s->lookahead.
+ */
+function longest_match(s, cur_match) {
+  var chain_length = s.max_chain_length;      /* max hash chain length */
+  var scan = s.strstart; /* current string */
+  var match;                       /* matched string */
+  var len;                           /* length of current match */
+  var best_len = s.prev_length;              /* best match length so far */
+  var nice_match = s.nice_match;             /* stop if match long enough */
+  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?
+      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;
+
+  var _win = s.window; // shortcut
+
+  var wmask = s.w_mask;
+  var prev  = s.prev;
+
+  /* Stop when cur_match becomes <= limit. To simplify the code,
+   * we prevent matches with the string of window index 0.
+   */
+
+  var strend = s.strstart + MAX_MATCH;
+  var scan_end1  = _win[scan + best_len - 1];
+  var scan_end   = _win[scan + best_len];
+
+  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
+   * It is easy to get rid of this optimization if necessary.
+   */
+  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
+
+  /* Do not waste too much time if we already have a good match: */
+  if (s.prev_length >= s.good_match) {
+    chain_length >>= 2;
+  }
+  /* Do not look for matches beyond the end of the input. This is necessary
+   * to make deflate deterministic.
+   */
+  if (nice_match > s.lookahead) { nice_match = s.lookahead; }
+
+  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+
+  do {
+    // Assert(cur_match < s->strstart, "no future");
+    match = cur_match;
+
+    /* Skip to next match if the match length cannot increase
+     * or if the match length is less than 2.  Note that the checks below
+     * for insufficient lookahead only occur occasionally for performance
+     * reasons.  Therefore uninitialized memory will be accessed, and
+     * conditional jumps will be made that depend on those values.
+     * However the length of the match is limited to the lookahead, so
+     * the output of deflate is not affected by the uninitialized values.
+     */
+
+    if (_win[match + best_len]     !== scan_end  ||
+        _win[match + best_len - 1] !== scan_end1 ||
+        _win[match]                !== _win[scan] ||
+        _win[++match]              !== _win[scan + 1]) {
+      continue;
+    }
+
+    /* The check at best_len-1 can be removed because it will be made
+     * again later. (This heuristic is not always a win.)
+     * It is not necessary to compare scan[2] and match[2] since they
+     * are always equal when the other bytes match, given that
+     * the hash keys are equal and that HASH_BITS >= 8.
+     */
+    scan += 2;
+    match++;
+    // Assert(*scan == *match, "match[2]?");
+
+    /* We check for insufficient lookahead only every 8th comparison;
+     * the 256th check will be made at strstart+258.
+     */
+    do {
+      /*jshint noempty:false*/
+    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             scan < strend);
+
+    // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+
+    len = MAX_MATCH - (strend - scan);
+    scan = strend - MAX_MATCH;
+
+    if (len > best_len) {
+      s.match_start = cur_match;
+      best_len = len;
+      if (len >= nice_match) {
+        break;
+      }
+      scan_end1  = _win[scan + best_len - 1];
+      scan_end   = _win[scan + best_len];
+    }
+  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
+
+  if (best_len <= s.lookahead) {
+    return best_len;
+  }
+  return s.lookahead;
+}
+
+
+/* ===========================================================================
+ * Fill the window when the lookahead becomes insufficient.
+ * Updates strstart and lookahead.
+ *
+ * IN assertion: lookahead < MIN_LOOKAHEAD
+ * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
+ *    At least one byte has been read, or avail_in == 0; reads are
+ *    performed for at least two bytes (required for the zip translate_eol
+ *    option -- not supported here).
+ */
+function fill_window(s) {
+  var _w_size = s.w_size;
+  var p, n, m, more, str;
+
+  //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
+
+  do {
+    more = s.window_size - s.lookahead - s.strstart;
+
+    // JS ints have 32 bit, block below not needed
+    /* Deal with !@#$% 64K limit: */
+    //if (sizeof(int) <= 2) {
+    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
+    //        more = wsize;
+    //
+    //  } else if (more == (unsigned)(-1)) {
+    //        /* Very unlikely, but possible on 16 bit machine if
+    //         * strstart == 0 && lookahead == 1 (input done a byte at time)
+    //         */
+    //        more--;
+    //    }
+    //}
+
+
+    /* If the window is almost full and there is insufficient lookahead,
+     * move the upper half to the lower one to make room in the upper half.
+     */
+    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
+
+      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
+      s.match_start -= _w_size;
+      s.strstart -= _w_size;
+      /* we now have strstart >= MAX_DIST */
+      s.block_start -= _w_size;
+
+      /* Slide the hash table (could be avoided with 32 bit values
+       at the expense of memory usage). We slide even when level == 0
+       to keep the hash table consistent if we switch back to level > 0
+       later. (Using level 0 permanently is not an optimal usage of
+       zlib, so we don't care about this pathological case.)
+       */
+
+      n = s.hash_size;
+      p = n;
+      do {
+        m = s.head[--p];
+        s.head[p] = (m >= _w_size ? m - _w_size : 0);
+      } while (--n);
+
+      n = _w_size;
+      p = n;
+      do {
+        m = s.prev[--p];
+        s.prev[p] = (m >= _w_size ? m - _w_size : 0);
+        /* If n is not on any hash chain, prev[n] is garbage but
+         * its value will never be used.
+         */
+      } while (--n);
+
+      more += _w_size;
+    }
+    if (s.strm.avail_in === 0) {
+      break;
+    }
+
+    /* If there was no sliding:
+     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
+     *    more == window_size - lookahead - strstart
+     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
+     * => more >= window_size - 2*WSIZE + 2
+     * In the BIG_MEM or MMAP case (not yet supported),
+     *   window_size == input_size + MIN_LOOKAHEAD  &&
+     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
+     * Otherwise, window_size == 2*WSIZE so more >= 2.
+     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
+     */
+    //Assert(more >= 2, "more < 2");
+    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
+    s.lookahead += n;
+
+    /* Initialize the hash value now that we have some input: */
+    if (s.lookahead + s.insert >= MIN_MATCH) {
+      str = s.strstart - s.insert;
+      s.ins_h = s.window[str];
+
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
+//#if MIN_MATCH != 3
+//        Call update_hash() MIN_MATCH-3 more times
+//#endif
+      while (s.insert) {
+        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+        s.prev[str & s.w_mask] = s.head[s.ins_h];
+        s.head[s.ins_h] = str;
+        str++;
+        s.insert--;
+        if (s.lookahead + s.insert < MIN_MATCH) {
+          break;
+        }
+      }
+    }
+    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
+     * but this is not important since only literal bytes will be emitted.
+     */
+
+  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
+
+  /* If the WIN_INIT bytes after the end of the current data have never been
+   * written, then zero those bytes in order to avoid memory check reports of
+   * the use of uninitialized (or uninitialised as Julian writes) bytes by
+   * the longest match routines.  Update the high water mark for the next
+   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
+   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
+   */
+//  if (s.high_water < s.window_size) {
+//    var curr = s.strstart + s.lookahead;
+//    var init = 0;
+//
+//    if (s.high_water < curr) {
+//      /* Previous high water mark below current data -- zero WIN_INIT
+//       * bytes or up to end of window, whichever is less.
+//       */
+//      init = s.window_size - curr;
+//      if (init > WIN_INIT)
+//        init = WIN_INIT;
+//      zmemzero(s->window + curr, (unsigned)init);
+//      s->high_water = curr + init;
+//    }
+//    else if (s->high_water < (ulg)curr + WIN_INIT) {
+//      /* High water mark at or above current data, but below current data
+//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
+//       * to end of window, whichever is less.
+//       */
+//      init = (ulg)curr + WIN_INIT - s->high_water;
+//      if (init > s->window_size - s->high_water)
+//        init = s->window_size - s->high_water;
+//      zmemzero(s->window + s->high_water, (unsigned)init);
+//      s->high_water += init;
+//    }
+//  }
+//
+//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+//    "not enough room for search");
+}
+
+/* ===========================================================================
+ * Copy without compression as much as possible from the input stream, return
+ * the current block state.
+ * This function does not insert new strings in the dictionary since
+ * uncompressible data is probably not useful. This function is used
+ * only for the level=0 compression option.
+ * NOTE: this function should be optimized to avoid extra copying from
+ * window to pending_buf.
+ */
+function deflate_stored(s, flush) {
+  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
+   * to pending_buf_size, and each stored block has a 5 byte header:
+   */
+  var max_block_size = 0xffff;
+
+  if (max_block_size > s.pending_buf_size - 5) {
+    max_block_size = s.pending_buf_size - 5;
+  }
+
+  /* Copy as much as possible from input to output: */
+  for (;;) {
+    /* Fill the window as much as possible: */
+    if (s.lookahead <= 1) {
+
+      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||
+      //  s->block_start >= (long)s->w_size, "slide too late");
+//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||
+//        s.block_start >= s.w_size)) {
+//        throw  new Error("slide too late");
+//      }
+
+      fill_window(s);
+      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+
+      if (s.lookahead === 0) {
+        break;
+      }
+      /* flush the current block */
+    }
+    //Assert(s->block_start >= 0L, "block gone");
+//    if (s.block_start < 0) throw new Error("block gone");
+
+    s.strstart += s.lookahead;
+    s.lookahead = 0;
+
+    /* Emit a stored block if pending_buf will be full: */
+    var max_start = s.block_start + max_block_size;
+
+    if (s.strstart === 0 || s.strstart >= max_start) {
+      /* strstart == 0 is possible when wraparound on 16-bit machine */
+      s.lookahead = s.strstart - max_start;
+      s.strstart = max_start;
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+
+
+    }
+    /* Flush if we may have to slide, otherwise block_start may become
+     * negative and the data will be gone:
+     */
+    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+
+  s.insert = 0;
+
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+
+  if (s.strstart > s.block_start) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_NEED_MORE;
+}
+
+/* ===========================================================================
+ * Compress as much as possible from the input stream, return the current
+ * block state.
+ * This function does not perform lazy evaluation of matches and inserts
+ * new strings in the dictionary only for unmatched strings or for short
+ * matches. It is used only for the fast compression options.
+ */
+function deflate_fast(s, flush) {
+  var hash_head;        /* head of the hash chain */
+  var bflush;           /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) {
+        break; /* flush the current block */
+      }
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     * At this point we have always match_length < MIN_MATCH
+     */
+    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+    }
+    if (s.match_length >= MIN_MATCH) {
+      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only
+
+      /*** _tr_tally_dist(s, s.strstart - s.match_start,
+                     s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+
+      /* Insert new strings in the hash table only if the match length
+       * is not too large. This saves time but degrades compression.
+       */
+      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {
+        s.match_length--; /* string at strstart already in table */
+        do {
+          s.strstart++;
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+          /* strstart never exceeds WSIZE-MAX_MATCH, so there are
+           * always MIN_MATCH bytes ahead.
+           */
+        } while (--s.match_length !== 0);
+        s.strstart++;
+      } else
+      {
+        s.strstart += s.match_length;
+        s.match_length = 0;
+        s.ins_h = s.window[s.strstart];
+        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
+
+//#if MIN_MATCH != 3
+//                Call UPDATE_HASH() MIN_MATCH-3 more times
+//#endif
+        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
+         * matter since it will be recomputed at next deflate call.
+         */
+      }
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s.window[s.strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * Same as above, but achieves better compression. We use a lazy
+ * evaluation for matches: a match is finally adopted only if there is
+ * no better match at the next window position.
+ */
+function deflate_slow(s, flush) {
+  var hash_head;          /* head of hash chain */
+  var bflush;              /* set if current block must be flushed */
+
+  var max_insert;
+
+  /* Process the input block. */
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     */
+    s.prev_length = s.match_length;
+    s.prev_match = s.match_start;
+    s.match_length = MIN_MATCH - 1;
+
+    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&
+        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+
+      if (s.match_length <= 5 &&
+         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {
+
+        /* If prev_match is also MIN_MATCH, match_start is garbage
+         * but we will ignore the current match anyway.
+         */
+        s.match_length = MIN_MATCH - 1;
+      }
+    }
+    /* If there was a match at the previous step and the current
+     * match is not better, output the previous match:
+     */
+    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
+      max_insert = s.strstart + s.lookahead - MIN_MATCH;
+      /* Do not insert strings in hash table beyond this. */
+
+      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);
+
+      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
+                     s.prev_length - MIN_MATCH, bflush);***/
+      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
+      /* Insert in hash table all strings up to the end of the match.
+       * strstart-1 and strstart are already inserted. If there is not
+       * enough lookahead, the last two strings are not inserted in
+       * the hash table.
+       */
+      s.lookahead -= s.prev_length - 1;
+      s.prev_length -= 2;
+      do {
+        if (++s.strstart <= max_insert) {
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+        }
+      } while (--s.prev_length !== 0);
+      s.match_available = 0;
+      s.match_length = MIN_MATCH - 1;
+      s.strstart++;
+
+      if (bflush) {
+        /*** FLUSH_BLOCK(s, 0); ***/
+        flush_block_only(s, false);
+        if (s.strm.avail_out === 0) {
+          return BS_NEED_MORE;
+        }
+        /***/
+      }
+
+    } else if (s.match_available) {
+      /* If there was no match at the previous position, output a
+       * single literal. If there was a match but the current match
+       * is longer, truncate the previous match to a single literal.
+       */
+      //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+      if (bflush) {
+        /*** FLUSH_BLOCK_ONLY(s, 0) ***/
+        flush_block_only(s, false);
+        /***/
+      }
+      s.strstart++;
+      s.lookahead--;
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+    } else {
+      /* There is no previous match to compare with, wait for
+       * the next step to decide.
+       */
+      s.match_available = 1;
+      s.strstart++;
+      s.lookahead--;
+    }
+  }
+  //Assert (flush != Z_NO_FLUSH, "no flush?");
+  if (s.match_available) {
+    //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+    s.match_available = 0;
+  }
+  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_BLOCK_DONE;
+}
+
+
+/* ===========================================================================
+ * For Z_RLE, simply look for runs of bytes, generate matches only of distance
+ * one.  Do not maintain a hash table.  (It will be regenerated if this run of
+ * deflate switches away from Z_RLE.)
+ */
+function deflate_rle(s, flush) {
+  var bflush;            /* set if current block must be flushed */
+  var prev;              /* byte at distance one to match */
+  var scan, strend;      /* scan goes up to strend for length of run */
+
+  var _win = s.window;
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the longest run, plus one for the unrolled loop.
+     */
+    if (s.lookahead <= MAX_MATCH) {
+      fill_window(s);
+      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* See how many times the previous byte repeats */
+    s.match_length = 0;
+    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
+      scan = s.strstart - 1;
+      prev = _win[scan];
+      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
+        strend = s.strstart + MAX_MATCH;
+        do {
+          /*jshint noempty:false*/
+        } while (prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 scan < strend);
+        s.match_length = MAX_MATCH - (strend - scan);
+        if (s.match_length > s.lookahead) {
+          s.match_length = s.lookahead;
+        }
+      }
+      //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
+    }
+
+    /* Emit match if have run of MIN_MATCH or longer, else emit literal */
+    if (s.match_length >= MIN_MATCH) {
+      //check_match(s, s.strstart, s.strstart - 1, s.match_length);
+
+      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+      s.strstart += s.match_length;
+      s.match_length = 0;
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s->window[s->strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
+ * (It will be regenerated if this run of deflate switches away from Huffman.)
+ */
+function deflate_huff(s, flush) {
+  var bflush;             /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we have a literal to write. */
+    if (s.lookahead === 0) {
+      fill_window(s);
+      if (s.lookahead === 0) {
+        if (flush === Z_NO_FLUSH) {
+          return BS_NEED_MORE;
+        }
+        break;      /* flush the current block */
+      }
+    }
+
+    /* Output a literal byte */
+    s.match_length = 0;
+    //Tracevv((stderr,"%c", s->window[s->strstart]));
+    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+    s.lookahead--;
+    s.strstart++;
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* Values for max_lazy_match, good_match and max_chain_length, depending on
+ * the desired pack level (0..9). The values given below have been tuned to
+ * exclude worst case performance for pathological files. Better values may be
+ * found for specific files.
+ */
+function Config(good_length, max_lazy, nice_length, max_chain, func) {
+  this.good_length = good_length;
+  this.max_lazy = max_lazy;
+  this.nice_length = nice_length;
+  this.max_chain = max_chain;
+  this.func = func;
+}
+
+var configuration_table;
+
+configuration_table = [
+  /*      good lazy nice chain */
+  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */
+  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */
+  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */
+  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */
+
+  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */
+  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */
+  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */
+  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */
+  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */
+  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */
+];
+
+
+/* ===========================================================================
+ * Initialize the "longest match" routines for a new zlib stream
+ */
+function lm_init(s) {
+  s.window_size = 2 * s.w_size;
+
+  /*** CLEAR_HASH(s); ***/
+  zero(s.head); // Fill with NIL (= 0);
+
+  /* Set the default configuration parameters:
+   */
+  s.max_lazy_match = configuration_table[s.level].max_lazy;
+  s.good_match = configuration_table[s.level].good_length;
+  s.nice_match = configuration_table[s.level].nice_length;
+  s.max_chain_length = configuration_table[s.level].max_chain;
+
+  s.strstart = 0;
+  s.block_start = 0;
+  s.lookahead = 0;
+  s.insert = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  s.ins_h = 0;
+}
+
+
+function DeflateState() {
+  this.strm = null;            /* pointer back to this zlib stream */
+  this.status = 0;            /* as the name implies */
+  this.pending_buf = null;      /* output still pending */
+  this.pending_buf_size = 0;  /* size of pending_buf */
+  this.pending_out = 0;       /* next pending byte to output to the stream */
+  this.pending = 0;           /* nb of bytes in the pending buffer */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.gzhead = null;         /* gzip header information to write */
+  this.gzindex = 0;           /* where in extra, name, or comment */
+  this.method = Z_DEFLATED; /* can only be DEFLATED */
+  this.last_flush = -1;   /* value of flush param for previous deflate call */
+
+  this.w_size = 0;  /* LZ77 window size (32K by default) */
+  this.w_bits = 0;  /* log2(w_size)  (8..16) */
+  this.w_mask = 0;  /* w_size - 1 */
+
+  this.window = null;
+  /* Sliding window. Input bytes are read into the second half of the window,
+   * and move to the first half later to keep a dictionary of at least wSize
+   * bytes. With this organization, matches are limited to a distance of
+   * wSize-MAX_MATCH bytes, but this ensures that IO is always
+   * performed with a length multiple of the block size.
+   */
+
+  this.window_size = 0;
+  /* Actual size of window: 2*wSize, except when the user input buffer
+   * is directly used as sliding window.
+   */
+
+  this.prev = null;
+  /* Link to older string with same hash index. To limit the size of this
+   * array to 64K, this link is maintained only for the last 32K strings.
+   * An index in this array is thus a window index modulo 32K.
+   */
+
+  this.head = null;   /* Heads of the hash chains or NIL. */
+
+  this.ins_h = 0;       /* hash index of string to be inserted */
+  this.hash_size = 0;   /* number of elements in hash table */
+  this.hash_bits = 0;   /* log2(hash_size) */
+  this.hash_mask = 0;   /* hash_size-1 */
+
+  this.hash_shift = 0;
+  /* Number of bits by which ins_h must be shifted at each input
+   * step. It must be such that after MIN_MATCH steps, the oldest
+   * byte no longer takes part in the hash key, that is:
+   *   hash_shift * MIN_MATCH >= hash_bits
+   */
+
+  this.block_start = 0;
+  /* Window position at the beginning of the current output block. Gets
+   * negative when the window is moved backwards.
+   */
+
+  this.match_length = 0;      /* length of best match */
+  this.prev_match = 0;        /* previous match */
+  this.match_available = 0;   /* set if previous match exists */
+  this.strstart = 0;          /* start of string to insert */
+  this.match_start = 0;       /* start of matching string */
+  this.lookahead = 0;         /* number of valid bytes ahead in window */
+
+  this.prev_length = 0;
+  /* Length of the best match at previous step. Matches not greater than this
+   * are discarded. This is used in the lazy match evaluation.
+   */
+
+  this.max_chain_length = 0;
+  /* To speed up deflation, hash chains are never searched beyond this
+   * length.  A higher limit improves compression ratio but degrades the
+   * speed.
+   */
+
+  this.max_lazy_match = 0;
+  /* Attempt to find a better match only when the current match is strictly
+   * smaller than this value. This mechanism is used only for compression
+   * levels >= 4.
+   */
+  // That's alias to max_lazy_match, don't use directly
+  //this.max_insert_length = 0;
+  /* Insert new strings in the hash table only if the match length is not
+   * greater than this length. This saves time but degrades compression.
+   * max_insert_length is used only for compression levels <= 3.
+   */
+
+  this.level = 0;     /* compression level (1..9) */
+  this.strategy = 0;  /* favor or force Huffman coding*/
+
+  this.good_match = 0;
+  /* Use a faster search when the previous match is longer than this */
+
+  this.nice_match = 0; /* Stop searching when current match exceeds this */
+
+              /* used by trees.c: */
+
+  /* Didn't use ct_data typedef below to suppress compiler warning */
+
+  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
+  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
+  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
+
+  // Use flat array of DOUBLE size, with interleaved fata,
+  // because JS does not support effective
+  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);
+  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);
+  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);
+  zero(this.dyn_ltree);
+  zero(this.dyn_dtree);
+  zero(this.bl_tree);
+
+  this.l_desc   = null;         /* desc. for literal tree */
+  this.d_desc   = null;         /* desc. for distance tree */
+  this.bl_desc  = null;         /* desc. for bit length tree */
+
+  //ush bl_count[MAX_BITS+1];
+  this.bl_count = new utils.Buf16(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
+  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */
+  zero(this.heap);
+
+  this.heap_len = 0;               /* number of elements in the heap */
+  this.heap_max = 0;               /* element of largest frequency */
+  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
+   * The same heap array is used to build all trees.
+   */
+
+  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];
+  zero(this.depth);
+  /* Depth of each subtree used as tie breaker for trees of equal frequency
+   */
+
+  this.l_buf = 0;          /* buffer index for literals or lengths */
+
+  this.lit_bufsize = 0;
+  /* Size of match buffer for literals/lengths.  There are 4 reasons for
+   * limiting lit_bufsize to 64K:
+   *   - frequencies can be kept in 16 bit counters
+   *   - if compression is not successful for the first block, all input
+   *     data is still in the window so we can still emit a stored block even
+   *     when input comes from standard input.  (This can also be done for
+   *     all blocks if lit_bufsize is not greater than 32K.)
+   *   - if compression is not successful for a file smaller than 64K, we can
+   *     even emit a stored file instead of a stored block (saving 5 bytes).
+   *     This is applicable only for zip (not gzip or zlib).
+   *   - creating new Huffman trees less frequently may not provide fast
+   *     adaptation to changes in the input data statistics. (Take for
+   *     example a binary file with poorly compressible code followed by
+   *     a highly compressible string table.) Smaller buffer sizes give
+   *     fast adaptation but have of course the overhead of transmitting
+   *     trees more frequently.
+   *   - I can't count above 4
+   */
+
+  this.last_lit = 0;      /* running index in l_buf */
+
+  this.d_buf = 0;
+  /* Buffer index for distances. To simplify the code, d_buf and l_buf have
+   * the same number of elements. To use different lengths, an extra flag
+   * array would be necessary.
+   */
+
+  this.opt_len = 0;       /* bit length of current block with optimal trees */
+  this.static_len = 0;    /* bit length of current block with static trees */
+  this.matches = 0;       /* number of string matches in current block */
+  this.insert = 0;        /* bytes at end of window left to insert */
+
+
+  this.bi_buf = 0;
+  /* Output buffer. bits are inserted starting at the bottom (least
+   * significant bits).
+   */
+  this.bi_valid = 0;
+  /* Number of valid bits in bi_buf.  All bits above the last valid bit
+   * are always zero.
+   */
+
+  // Used for window memory init. We safely ignore it for JS. That makes
+  // sense only for pointers and memory check tools.
+  //this.high_water = 0;
+  /* High water mark offset in window for initialized bytes -- bytes above
+   * this are set to zero in order to avoid memory check warnings when
+   * longest match routines access bytes past the input.  This is then
+   * updated to the new high water mark.
+   */
+}
+
+
+function deflateResetKeep(strm) {
+  var s;
+
+  if (!strm || !strm.state) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.total_in = strm.total_out = 0;
+  strm.data_type = Z_UNKNOWN;
+
+  s = strm.state;
+  s.pending = 0;
+  s.pending_out = 0;
+
+  if (s.wrap < 0) {
+    s.wrap = -s.wrap;
+    /* was made negative by deflate(..., Z_FINISH); */
+  }
+  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);
+  strm.adler = (s.wrap === 2) ?
+    0  // crc32(0, Z_NULL, 0)
+  :
+    1; // adler32(0, Z_NULL, 0)
+  s.last_flush = Z_NO_FLUSH;
+  trees._tr_init(s);
+  return Z_OK;
+}
+
+
+function deflateReset(strm) {
+  var ret = deflateResetKeep(strm);
+  if (ret === Z_OK) {
+    lm_init(strm.state);
+  }
+  return ret;
+}
+
+
+function deflateSetHeader(strm, head) {
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }
+  strm.state.gzhead = head;
+  return Z_OK;
+}
+
+
+function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
+  if (!strm) { // === Z_NULL
+    return Z_STREAM_ERROR;
+  }
+  var wrap = 1;
+
+  if (level === Z_DEFAULT_COMPRESSION) {
+    level = 6;
+  }
+
+  if (windowBits < 0) { /* suppress zlib wrapper */
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+
+  else if (windowBits > 15) {
+    wrap = 2;           /* write gzip wrapper instead */
+    windowBits -= 16;
+  }
+
+
+  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||
+    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
+    strategy < 0 || strategy > Z_FIXED) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+
+  if (windowBits === 8) {
+    windowBits = 9;
+  }
+  /* until 256-byte window bug fixed */
+
+  var s = new DeflateState();
+
+  strm.state = s;
+  s.strm = strm;
+
+  s.wrap = wrap;
+  s.gzhead = null;
+  s.w_bits = windowBits;
+  s.w_size = 1 << s.w_bits;
+  s.w_mask = s.w_size - 1;
+
+  s.hash_bits = memLevel + 7;
+  s.hash_size = 1 << s.hash_bits;
+  s.hash_mask = s.hash_size - 1;
+  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
+
+  s.window = new utils.Buf8(s.w_size * 2);
+  s.head = new utils.Buf16(s.hash_size);
+  s.prev = new utils.Buf16(s.w_size);
+
+  // Don't need mem init magic for JS.
+  //s.high_water = 0;  /* nothing written to s->window yet */
+
+  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
+
+  s.pending_buf_size = s.lit_bufsize * 4;
+
+  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
+  //s->pending_buf = (uchf *) overlay;
+  s.pending_buf = new utils.Buf8(s.pending_buf_size);
+
+  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)
+  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
+  s.d_buf = 1 * s.lit_bufsize;
+
+  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
+  s.l_buf = (1 + 2) * s.lit_bufsize;
+
+  s.level = level;
+  s.strategy = strategy;
+  s.method = method;
+
+  return deflateReset(strm);
+}
+
+function deflateInit(strm, level) {
+  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
+}
+
+
+function deflate(strm, flush) {
+  var old_flush, s;
+  var beg, val; // for gzip header write only
+
+  if (!strm || !strm.state ||
+    flush > Z_BLOCK || flush < 0) {
+    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+
+  if (!strm.output ||
+      (!strm.input && strm.avail_in !== 0) ||
+      (s.status === FINISH_STATE && flush !== Z_FINISH)) {
+    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);
+  }
+
+  s.strm = strm; /* just in case */
+  old_flush = s.last_flush;
+  s.last_flush = flush;
+
+  /* Write the header */
+  if (s.status === INIT_STATE) {
+
+    if (s.wrap === 2) { // GZIP header
+      strm.adler = 0;  //crc32(0L, Z_NULL, 0);
+      put_byte(s, 31);
+      put_byte(s, 139);
+      put_byte(s, 8);
+      if (!s.gzhead) { // s->gzhead == Z_NULL
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, OS_CODE);
+        s.status = BUSY_STATE;
+      }
+      else {
+        put_byte(s, (s.gzhead.text ? 1 : 0) +
+                    (s.gzhead.hcrc ? 2 : 0) +
+                    (!s.gzhead.extra ? 0 : 4) +
+                    (!s.gzhead.name ? 0 : 8) +
+                    (!s.gzhead.comment ? 0 : 16)
+                );
+        put_byte(s, s.gzhead.time & 0xff);
+        put_byte(s, (s.gzhead.time >> 8) & 0xff);
+        put_byte(s, (s.gzhead.time >> 16) & 0xff);
+        put_byte(s, (s.gzhead.time >> 24) & 0xff);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, s.gzhead.os & 0xff);
+        if (s.gzhead.extra && s.gzhead.extra.length) {
+          put_byte(s, s.gzhead.extra.length & 0xff);
+          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);
+        }
+        if (s.gzhead.hcrc) {
+          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
+        }
+        s.gzindex = 0;
+        s.status = EXTRA_STATE;
+      }
+    }
+    else // DEFLATE header
+    {
+      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
+      var level_flags = -1;
+
+      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
+        level_flags = 0;
+      } else if (s.level < 6) {
+        level_flags = 1;
+      } else if (s.level === 6) {
+        level_flags = 2;
+      } else {
+        level_flags = 3;
+      }
+      header |= (level_flags << 6);
+      if (s.strstart !== 0) { header |= PRESET_DICT; }
+      header += 31 - (header % 31);
+
+      s.status = BUSY_STATE;
+      putShortMSB(s, header);
+
+      /* Save the adler32 of the preset dictionary: */
+      if (s.strstart !== 0) {
+        putShortMSB(s, strm.adler >>> 16);
+        putShortMSB(s, strm.adler & 0xffff);
+      }
+      strm.adler = 1; // adler32(0L, Z_NULL, 0);
+    }
+  }
+
+//#ifdef GZIP
+  if (s.status === EXTRA_STATE) {
+    if (s.gzhead.extra/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+
+      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            break;
+          }
+        }
+        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);
+        s.gzindex++;
+      }
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (s.gzindex === s.gzhead.extra.length) {
+        s.gzindex = 0;
+        s.status = NAME_STATE;
+      }
+    }
+    else {
+      s.status = NAME_STATE;
+    }
+  }
+  if (s.status === NAME_STATE) {
+    if (s.gzhead.name/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.name.length) {
+          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.gzindex = 0;
+        s.status = COMMENT_STATE;
+      }
+    }
+    else {
+      s.status = COMMENT_STATE;
+    }
+  }
+  if (s.status === COMMENT_STATE) {
+    if (s.gzhead.comment/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.comment.length) {
+          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.status = HCRC_STATE;
+      }
+    }
+    else {
+      s.status = HCRC_STATE;
+    }
+  }
+  if (s.status === HCRC_STATE) {
+    if (s.gzhead.hcrc) {
+      if (s.pending + 2 > s.pending_buf_size) {
+        flush_pending(strm);
+      }
+      if (s.pending + 2 <= s.pending_buf_size) {
+        put_byte(s, strm.adler & 0xff);
+        put_byte(s, (strm.adler >> 8) & 0xff);
+        strm.adler = 0; //crc32(0L, Z_NULL, 0);
+        s.status = BUSY_STATE;
+      }
+    }
+    else {
+      s.status = BUSY_STATE;
+    }
+  }
+//#endif
+
+  /* Flush as much pending output as possible */
+  if (s.pending !== 0) {
+    flush_pending(strm);
+    if (strm.avail_out === 0) {
+      /* Since avail_out is 0, deflate will be called again with
+       * more output space, but possibly with both pending and
+       * avail_in equal to zero. There won't be anything to do,
+       * but this is not an error situation so make sure we
+       * return OK instead of BUF_ERROR at next call of deflate:
+       */
+      s.last_flush = -1;
+      return Z_OK;
+    }
+
+    /* Make sure there is something to do and avoid duplicate consecutive
+     * flushes. For repeated and useless calls with Z_FINISH, we keep
+     * returning Z_STREAM_END instead of Z_BUF_ERROR.
+     */
+  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&
+    flush !== Z_FINISH) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* User must not provide more input after the first FINISH: */
+  if (s.status === FINISH_STATE && strm.avail_in !== 0) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* Start a new block or continue the current one.
+   */
+  if (strm.avail_in !== 0 || s.lookahead !== 0 ||
+    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
+    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :
+      (s.strategy === Z_RLE ? deflate_rle(s, flush) :
+        configuration_table[s.level].func(s, flush));
+
+    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
+      s.status = FINISH_STATE;
+    }
+    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
+      if (strm.avail_out === 0) {
+        s.last_flush = -1;
+        /* avoid BUF_ERROR next call, see above */
+      }
+      return Z_OK;
+      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
+       * of deflate should use the same flush parameter to make sure
+       * that the flush is complete. So we don't have to output an
+       * empty block here, this will be done at next call. This also
+       * ensures that for a very small output buffer, we emit at most
+       * one empty block.
+       */
+    }
+    if (bstate === BS_BLOCK_DONE) {
+      if (flush === Z_PARTIAL_FLUSH) {
+        trees._tr_align(s);
+      }
+      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
+
+        trees._tr_stored_block(s, 0, 0, false);
+        /* For a full flush, this empty block will be recognized
+         * as a special marker by inflate_sync().
+         */
+        if (flush === Z_FULL_FLUSH) {
+          /*** CLEAR_HASH(s); ***/             /* forget history */
+          zero(s.head); // Fill with NIL (= 0);
+
+          if (s.lookahead === 0) {
+            s.strstart = 0;
+            s.block_start = 0;
+            s.insert = 0;
+          }
+        }
+      }
+      flush_pending(strm);
+      if (strm.avail_out === 0) {
+        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */
+        return Z_OK;
+      }
+    }
+  }
+  //Assert(strm->avail_out > 0, "bug2");
+  //if (strm.avail_out <= 0) { throw new Error("bug2");}
+
+  if (flush !== Z_FINISH) { return Z_OK; }
+  if (s.wrap <= 0) { return Z_STREAM_END; }
+
+  /* Write the trailer */
+  if (s.wrap === 2) {
+    put_byte(s, strm.adler & 0xff);
+    put_byte(s, (strm.adler >> 8) & 0xff);
+    put_byte(s, (strm.adler >> 16) & 0xff);
+    put_byte(s, (strm.adler >> 24) & 0xff);
+    put_byte(s, strm.total_in & 0xff);
+    put_byte(s, (strm.total_in >> 8) & 0xff);
+    put_byte(s, (strm.total_in >> 16) & 0xff);
+    put_byte(s, (strm.total_in >> 24) & 0xff);
+  }
+  else
+  {
+    putShortMSB(s, strm.adler >>> 16);
+    putShortMSB(s, strm.adler & 0xffff);
+  }
+
+  flush_pending(strm);
+  /* If avail_out is zero, the application will call deflate again
+   * to flush the rest.
+   */
+  if (s.wrap > 0) { s.wrap = -s.wrap; }
+  /* write the trailer only once! */
+  return s.pending !== 0 ? Z_OK : Z_STREAM_END;
+}
+
+function deflateEnd(strm) {
+  var status;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  status = strm.state.status;
+  if (status !== INIT_STATE &&
+    status !== EXTRA_STATE &&
+    status !== NAME_STATE &&
+    status !== COMMENT_STATE &&
+    status !== HCRC_STATE &&
+    status !== BUSY_STATE &&
+    status !== FINISH_STATE
+  ) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.state = null;
+
+  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
+}
+
+
+/* =========================================================================
+ * Initializes the compression dictionary from the given byte
+ * sequence without producing any compressed output.
+ */
+function deflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var s;
+  var str, n;
+  var wrap;
+  var avail;
+  var next;
+  var input;
+  var tmpDict;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+  wrap = s.wrap;
+
+  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* when using zlib wrappers, compute Adler-32 for provided dictionary */
+  if (wrap === 1) {
+    /* adler32(strm->adler, dictionary, dictLength); */
+    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
+  }
+
+  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */
+
+  /* if dictionary would fill window, just replace the history */
+  if (dictLength >= s.w_size) {
+    if (wrap === 0) {            /* already empty otherwise */
+      /*** CLEAR_HASH(s); ***/
+      zero(s.head); // Fill with NIL (= 0);
+      s.strstart = 0;
+      s.block_start = 0;
+      s.insert = 0;
+    }
+    /* use the tail */
+    // dictionary = dictionary.slice(dictLength - s.w_size);
+    tmpDict = new utils.Buf8(s.w_size);
+    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
+    dictionary = tmpDict;
+    dictLength = s.w_size;
+  }
+  /* insert dictionary into window and hash */
+  avail = strm.avail_in;
+  next = strm.next_in;
+  input = strm.input;
+  strm.avail_in = dictLength;
+  strm.next_in = 0;
+  strm.input = dictionary;
+  fill_window(s);
+  while (s.lookahead >= MIN_MATCH) {
+    str = s.strstart;
+    n = s.lookahead - (MIN_MATCH - 1);
+    do {
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+      s.prev[str & s.w_mask] = s.head[s.ins_h];
+
+      s.head[s.ins_h] = str;
+      str++;
+    } while (--n);
+    s.strstart = str;
+    s.lookahead = MIN_MATCH - 1;
+    fill_window(s);
+  }
+  s.strstart += s.lookahead;
+  s.block_start = s.strstart;
+  s.insert = s.lookahead;
+  s.lookahead = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  strm.next_in = next;
+  strm.input = input;
+  strm.avail_in = avail;
+  s.wrap = wrap;
+  return Z_OK;
+}
+
+
+exports.deflateInit = deflateInit;
+exports.deflateInit2 = deflateInit2;
+exports.deflateReset = deflateReset;
+exports.deflateResetKeep = deflateResetKeep;
+exports.deflateSetHeader = deflateSetHeader;
+exports.deflate = deflate;
+exports.deflateEnd = deflateEnd;
+exports.deflateSetDictionary = deflateSetDictionary;
+exports.deflateInfo = 'pako deflate (from Nodeca project)';
+
+/* Not implemented
+exports.deflateBound = deflateBound;
+exports.deflateCopy = deflateCopy;
+exports.deflateParams = deflateParams;
+exports.deflatePending = deflatePending;
+exports.deflatePrime = deflatePrime;
+exports.deflateTune = deflateTune;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function GZheader() {
+  /* true if compressed data believed to be text */
+  this.text       = 0;
+  /* modification time */
+  this.time       = 0;
+  /* extra flags (not used when writing a gzip file) */
+  this.xflags     = 0;
+  /* operating system */
+  this.os         = 0;
+  /* pointer to extra field or Z_NULL if none */
+  this.extra      = null;
+  /* extra field length (valid if extra != Z_NULL) */
+  this.extra_len  = 0; // Actually, we don't need it in JS,
+                       // but leave for few code modifications
+
+  //
+  // Setup limits is not necessary because in js we should not preallocate memory
+  // for inflate use constant limit in 65536 bytes
+  //
+
+  /* space at extra (only when reading header) */
+  // this.extra_max  = 0;
+  /* pointer to zero-terminated file name or Z_NULL */
+  this.name       = '';
+  /* space at name (only when reading header) */
+  // this.name_max   = 0;
+  /* pointer to zero-terminated comment or Z_NULL */
+  this.comment    = '';
+  /* space at comment (only when reading header) */
+  // this.comm_max   = 0;
+  /* true if there was or will be a header crc */
+  this.hcrc       = 0;
+  /* true when done reading gzip header (not used when writing a gzip file) */
+  this.done       = false;
+}
+
+module.exports = GZheader;
+
+},{}],69:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// See state defs from inflate.js
+var BAD = 30;       /* got a data error -- remain here until reset */
+var TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+
+/*
+   Decode literal, length, and distance codes and write out the resulting
+   literal and match bytes until either not enough input or output is
+   available, an end-of-block is encountered, or a data error is encountered.
+   When large enough input and output buffers are supplied to inflate(), for
+   example, a 16K input buffer and a 64K output buffer, more than 95% of the
+   inflate execution time is spent in this routine.
+
+   Entry assumptions:
+
+        state.mode === LEN
+        strm.avail_in >= 6
+        strm.avail_out >= 258
+        start >= strm.avail_out
+        state.bits < 8
+
+   On return, state.mode is one of:
+
+        LEN -- ran out of enough output space or enough available input
+        TYPE -- reached end of block code, inflate() to interpret next block
+        BAD -- error in block data
+
+   Notes:
+
+    - The maximum input bits used by a length/distance pair is 15 bits for the
+      length code, 5 bits for the length extra, 15 bits for the distance code,
+      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
+      Therefore if strm.avail_in >= 6, then there is enough input to avoid
+      checking for available input while decoding.
+
+    - The maximum bytes that a single length/distance pair can output is 258
+      bytes, which is the maximum length that can be coded.  inflate_fast()
+      requires strm.avail_out >= 258 for each loop to avoid checking for
+      output space.
+ */
+module.exports = function inflate_fast(strm, start) {
+  var state;
+  var _in;                    /* local strm.input */
+  var last;                   /* have enough input while in < last */
+  var _out;                   /* local strm.output */
+  var beg;                    /* inflate()'s initial strm.output */
+  var end;                    /* while out < end, enough space available */
+//#ifdef INFLATE_STRICT
+  var dmax;                   /* maximum distance from zlib header */
+//#endif
+  var wsize;                  /* window size or zero if not using window */
+  var whave;                  /* valid bytes in the window */
+  var wnext;                  /* window write index */
+  // Use `s_window` instead `window`, avoid conflict with instrumentation tools
+  var s_window;               /* allocated sliding window, if wsize != 0 */
+  var hold;                   /* local strm.hold */
+  var bits;                   /* local strm.bits */
+  var lcode;                  /* local strm.lencode */
+  var dcode;                  /* local strm.distcode */
+  var lmask;                  /* mask for first level of length codes */
+  var dmask;                  /* mask for first level of distance codes */
+  var here;                   /* retrieved table entry */
+  var op;                     /* code bits, operation, extra bits, or */
+                              /*  window position, window bytes to copy */
+  var len;                    /* match length, unused bytes */
+  var dist;                   /* match distance */
+  var from;                   /* where to copy match from */
+  var from_source;
+
+
+  var input, output; // JS specific, because we have no pointers
+
+  /* copy state to local variables */
+  state = strm.state;
+  //here = state.here;
+  _in = strm.next_in;
+  input = strm.input;
+  last = _in + (strm.avail_in - 5);
+  _out = strm.next_out;
+  output = strm.output;
+  beg = _out - (start - strm.avail_out);
+  end = _out + (strm.avail_out - 257);
+//#ifdef INFLATE_STRICT
+  dmax = state.dmax;
+//#endif
+  wsize = state.wsize;
+  whave = state.whave;
+  wnext = state.wnext;
+  s_window = state.window;
+  hold = state.hold;
+  bits = state.bits;
+  lcode = state.lencode;
+  dcode = state.distcode;
+  lmask = (1 << state.lenbits) - 1;
+  dmask = (1 << state.distbits) - 1;
+
+
+  /* decode literals and length/distances until end-of-block or not enough
+     input data or output space */
+
+  top:
+  do {
+    if (bits < 15) {
+      hold += input[_in++] << bits;
+      bits += 8;
+      hold += input[_in++] << bits;
+      bits += 8;
+    }
+
+    here = lcode[hold & lmask];
+
+    dolen:
+    for (;;) { // Goto emulation
+      op = here >>> 24/*here.bits*/;
+      hold >>>= op;
+      bits -= op;
+      op = (here >>> 16) & 0xff/*here.op*/;
+      if (op === 0) {                          /* literal */
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        output[_out++] = here & 0xffff/*here.val*/;
+      }
+      else if (op & 16) {                     /* length base */
+        len = here & 0xffff/*here.val*/;
+        op &= 15;                           /* number of extra bits */
+        if (op) {
+          if (bits < op) {
+            hold += input[_in++] << bits;
+            bits += 8;
+          }
+          len += hold & ((1 << op) - 1);
+          hold >>>= op;
+          bits -= op;
+        }
+        //Tracevv((stderr, "inflate:         length %u\n", len));
+        if (bits < 15) {
+          hold += input[_in++] << bits;
+          bits += 8;
+          hold += input[_in++] << bits;
+          bits += 8;
+        }
+        here = dcode[hold & dmask];
+
+        dodist:
+        for (;;) { // goto emulation
+          op = here >>> 24/*here.bits*/;
+          hold >>>= op;
+          bits -= op;
+          op = (here >>> 16) & 0xff/*here.op*/;
+
+          if (op & 16) {                      /* distance base */
+            dist = here & 0xffff/*here.val*/;
+            op &= 15;                       /* number of extra bits */
+            if (bits < op) {
+              hold += input[_in++] << bits;
+              bits += 8;
+              if (bits < op) {
+                hold += input[_in++] << bits;
+                bits += 8;
+              }
+            }
+            dist += hold & ((1 << op) - 1);
+//#ifdef INFLATE_STRICT
+            if (dist > dmax) {
+              strm.msg = 'invalid distance too far back';
+              state.mode = BAD;
+              break top;
+            }
+//#endif
+            hold >>>= op;
+            bits -= op;
+            //Tracevv((stderr, "inflate:         distance %u\n", dist));
+            op = _out - beg;                /* max distance in output */
+            if (dist > op) {                /* see if copy from window */
+              op = dist - op;               /* distance back in window */
+              if (op > whave) {
+                if (state.sane) {
+                  strm.msg = 'invalid distance too far back';
+                  state.mode = BAD;
+                  break top;
+                }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//                if (len <= op - whave) {
+//                  do {
+//                    output[_out++] = 0;
+//                  } while (--len);
+//                  continue top;
+//                }
+//                len -= op - whave;
+//                do {
+//                  output[_out++] = 0;
+//                } while (--op > whave);
+//                if (op === 0) {
+//                  from = _out - dist;
+//                  do {
+//                    output[_out++] = output[from++];
+//                  } while (--len);
+//                  continue top;
+//                }
+//#endif
+              }
+              from = 0; // window index
+              from_source = s_window;
+              if (wnext === 0) {           /* very common case */
+                from += wsize - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              else if (wnext < op) {      /* wrap around window */
+                from += wsize + wnext - op;
+                op -= wnext;
+                if (op < len) {         /* some from end of window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = 0;
+                  if (wnext < len) {  /* some from start of window */
+                    op = wnext;
+                    len -= op;
+                    do {
+                      output[_out++] = s_window[from++];
+                    } while (--op);
+                    from = _out - dist;      /* rest from output */
+                    from_source = output;
+                  }
+                }
+              }
+              else {                      /* contiguous in window */
+                from += wnext - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              while (len > 2) {
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                len -= 3;
+              }
+              if (len) {
+                output[_out++] = from_source[from++];
+                if (len > 1) {
+                  output[_out++] = from_source[from++];
+                }
+              }
+            }
+            else {
+              from = _out - dist;          /* copy direct from output */
+              do {                        /* minimum length is three */
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                len -= 3;
+              } while (len > 2);
+              if (len) {
+                output[_out++] = output[from++];
+                if (len > 1) {
+                  output[_out++] = output[from++];
+                }
+              }
+            }
+          }
+          else if ((op & 64) === 0) {          /* 2nd level distance code */
+            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+            continue dodist;
+          }
+          else {
+            strm.msg = 'invalid distance code';
+            state.mode = BAD;
+            break top;
+          }
+
+          break; // need to emulate goto via "continue"
+        }
+      }
+      else if ((op & 64) === 0) {              /* 2nd level length code */
+        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+        continue dolen;
+      }
+      else if (op & 32) {                     /* end-of-block */
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.mode = TYPE;
+        break top;
+      }
+      else {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break top;
+      }
+
+      break; // need to emulate goto via "continue"
+    }
+  } while (_in < last && _out < end);
+
+  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+  len = bits >> 3;
+  _in -= len;
+  bits -= len << 3;
+  hold &= (1 << bits) - 1;
+
+  /* update state and return */
+  strm.next_in = _in;
+  strm.next_out = _out;
+  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));
+  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));
+  state.hold = hold;
+  state.bits = bits;
+  return;
+};
+
+},{}],70:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils         = require('../utils/common');
+var adler32       = require('./adler32');
+var crc32         = require('./crc32');
+var inflate_fast  = require('./inffast');
+var inflate_table = require('./inftrees');
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+//var Z_NO_FLUSH      = 0;
+//var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+//var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+
+/* STATES ====================================================================*/
+/* ===========================================================================*/
+
+
+var    HEAD = 1;       /* i: waiting for magic header */
+var    FLAGS = 2;      /* i: waiting for method and flags (gzip) */
+var    TIME = 3;       /* i: waiting for modification time (gzip) */
+var    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */
+var    EXLEN = 5;      /* i: waiting for extra length (gzip) */
+var    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */
+var    NAME = 7;       /* i: waiting for end of file name (gzip) */
+var    COMMENT = 8;    /* i: waiting for end of comment (gzip) */
+var    HCRC = 9;       /* i: waiting for header crc (gzip) */
+var    DICTID = 10;    /* i: waiting for dictionary check value */
+var    DICT = 11;      /* waiting for inflateSetDictionary() call */
+var        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+var        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */
+var        STORED = 14;    /* i: waiting for stored size (length and complement) */
+var        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */
+var        COPY = 16;      /* i/o: waiting for input or output to copy stored block */
+var        TABLE = 17;     /* i: waiting for dynamic block table lengths */
+var        LENLENS = 18;   /* i: waiting for code length code lengths */
+var        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */
+var            LEN_ = 20;      /* i: same as LEN below, but only first time in */
+var            LEN = 21;       /* i: waiting for length/lit/eob code */
+var            LENEXT = 22;    /* i: waiting for length extra bits */
+var            DIST = 23;      /* i: waiting for distance code */
+var            DISTEXT = 24;   /* i: waiting for distance extra bits */
+var            MATCH = 25;     /* o: waiting for output space to copy string */
+var            LIT = 26;       /* o: waiting for output space to write literal */
+var    CHECK = 27;     /* i: waiting for 32-bit check value */
+var    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */
+var    DONE = 29;      /* finished check, done -- remain here until reset */
+var    BAD = 30;       /* got a data error -- remain here until reset */
+var    MEM = 31;       /* got an inflate() memory error -- remain here until reset */
+var    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */
+
+/* ===========================================================================*/
+
+
+
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);
+
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_WBITS = MAX_WBITS;
+
+
+function zswap32(q) {
+  return  (((q >>> 24) & 0xff) +
+          ((q >>> 8) & 0xff00) +
+          ((q & 0xff00) << 8) +
+          ((q & 0xff) << 24));
+}
+
+
+function InflateState() {
+  this.mode = 0;             /* current inflate mode */
+  this.last = false;          /* true if processing last block */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.havedict = false;      /* true if dictionary provided */
+  this.flags = 0;             /* gzip header method and flags (0 if zlib) */
+  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */
+  this.check = 0;             /* protected copy of check value */
+  this.total = 0;             /* protected copy of output count */
+  // TODO: may be {}
+  this.head = null;           /* where to save gzip header information */
+
+  /* sliding window */
+  this.wbits = 0;             /* log base 2 of requested window size */
+  this.wsize = 0;             /* window size or zero if not using window */
+  this.whave = 0;             /* valid bytes in the window */
+  this.wnext = 0;             /* window write index */
+  this.window = null;         /* allocated sliding window, if needed */
+
+  /* bit accumulator */
+  this.hold = 0;              /* input bit accumulator */
+  this.bits = 0;              /* number of bits in "in" */
+
+  /* for string and stored block copying */
+  this.length = 0;            /* literal or length of data to copy */
+  this.offset = 0;            /* distance back to copy string from */
+
+  /* for table and code decoding */
+  this.extra = 0;             /* extra bits needed */
+
+  /* fixed and dynamic code tables */
+  this.lencode = null;          /* starting table for length/literal codes */
+  this.distcode = null;         /* starting table for distance codes */
+  this.lenbits = 0;           /* index bits for lencode */
+  this.distbits = 0;          /* index bits for distcode */
+
+  /* dynamic table building */
+  this.ncode = 0;             /* number of code length code lengths */
+  this.nlen = 0;              /* number of length code lengths */
+  this.ndist = 0;             /* number of distance code lengths */
+  this.have = 0;              /* number of code lengths in lens[] */
+  this.next = null;              /* next available space in codes[] */
+
+  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */
+  this.work = new utils.Buf16(288); /* work area for code table building */
+
+  /*
+   because we don't have pointers in js, we use lencode and distcode directly
+   as buffers so we don't need codes
+  */
+  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */
+  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */
+  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */
+  this.sane = 0;                   /* if false, allow invalid distance too far */
+  this.back = 0;                   /* bits back of last unprocessed length/lit */
+  this.was = 0;                    /* initial length of match */
+}
+
+function inflateResetKeep(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  strm.total_in = strm.total_out = state.total = 0;
+  strm.msg = ''; /*Z_NULL*/
+  if (state.wrap) {       /* to support ill-conceived Java test suite */
+    strm.adler = state.wrap & 1;
+  }
+  state.mode = HEAD;
+  state.last = 0;
+  state.havedict = 0;
+  state.dmax = 32768;
+  state.head = null/*Z_NULL*/;
+  state.hold = 0;
+  state.bits = 0;
+  //state.lencode = state.distcode = state.next = state.codes;
+  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
+  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
+
+  state.sane = 1;
+  state.back = -1;
+  //Tracev((stderr, "inflate: reset\n"));
+  return Z_OK;
+}
+
+function inflateReset(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  state.wsize = 0;
+  state.whave = 0;
+  state.wnext = 0;
+  return inflateResetKeep(strm);
+
+}
+
+function inflateReset2(strm, windowBits) {
+  var wrap;
+  var state;
+
+  /* get the state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  /* extract wrap request from windowBits parameter */
+  if (windowBits < 0) {
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+  else {
+    wrap = (windowBits >> 4) + 1;
+    if (windowBits < 48) {
+      windowBits &= 15;
+    }
+  }
+
+  /* set number of window bits, free window if different */
+  if (windowBits && (windowBits < 8 || windowBits > 15)) {
+    return Z_STREAM_ERROR;
+  }
+  if (state.window !== null && state.wbits !== windowBits) {
+    state.window = null;
+  }
+
+  /* update state and reset the rest of it */
+  state.wrap = wrap;
+  state.wbits = windowBits;
+  return inflateReset(strm);
+}
+
+function inflateInit2(strm, windowBits) {
+  var ret;
+  var state;
+
+  if (!strm) { return Z_STREAM_ERROR; }
+  //strm.msg = Z_NULL;                 /* in case we return an error */
+
+  state = new InflateState();
+
+  //if (state === Z_NULL) return Z_MEM_ERROR;
+  //Tracev((stderr, "inflate: allocated\n"));
+  strm.state = state;
+  state.window = null/*Z_NULL*/;
+  ret = inflateReset2(strm, windowBits);
+  if (ret !== Z_OK) {
+    strm.state = null/*Z_NULL*/;
+  }
+  return ret;
+}
+
+function inflateInit(strm) {
+  return inflateInit2(strm, DEF_WBITS);
+}
+
+
+/*
+ Return state with length and distance decoding tables and index sizes set to
+ fixed code decoding.  Normally this returns fixed tables from inffixed.h.
+ If BUILDFIXED is defined, then instead this routine builds the tables the
+ first time it's called, and returns those tables the first time and
+ thereafter.  This reduces the size of the code by about 2K bytes, in
+ exchange for a little execution time.  However, BUILDFIXED should not be
+ used for threaded applications, since the rewriting of the tables and virgin
+ may not be thread-safe.
+ */
+var virgin = true;
+
+var lenfix, distfix; // We have no pointers in JS, so keep tables separate
+
+function fixedtables(state) {
+  /* build fixed huffman tables if first call (may not be thread safe) */
+  if (virgin) {
+    var sym;
+
+    lenfix = new utils.Buf32(512);
+    distfix = new utils.Buf32(32);
+
+    /* literal/length table */
+    sym = 0;
+    while (sym < 144) { state.lens[sym++] = 8; }
+    while (sym < 256) { state.lens[sym++] = 9; }
+    while (sym < 280) { state.lens[sym++] = 7; }
+    while (sym < 288) { state.lens[sym++] = 8; }
+
+    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });
+
+    /* distance table */
+    sym = 0;
+    while (sym < 32) { state.lens[sym++] = 5; }
+
+    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });
+
+    /* do this just once */
+    virgin = false;
+  }
+
+  state.lencode = lenfix;
+  state.lenbits = 9;
+  state.distcode = distfix;
+  state.distbits = 5;
+}
+
+
+/*
+ Update the window with the last wsize (normally 32K) bytes written before
+ returning.  If window does not exist yet, create it.  This is only called
+ when a window is already in use, or when output has been written during this
+ inflate call, but the end of the deflate stream has not been reached yet.
+ It is also called to create a window for dictionary data when a dictionary
+ is loaded.
+
+ Providing output buffers larger than 32K to inflate() should provide a speed
+ advantage, since only the last 32K of output is copied to the sliding window
+ upon return from inflate(), and since all distances after the first 32K of
+ output will fall in the output data, making match copies simpler and faster.
+ The advantage may be dependent on the size of the processor's data caches.
+ */
+function updatewindow(strm, src, end, copy) {
+  var dist;
+  var state = strm.state;
+
+  /* if it hasn't been done already, allocate space for the window */
+  if (state.window === null) {
+    state.wsize = 1 << state.wbits;
+    state.wnext = 0;
+    state.whave = 0;
+
+    state.window = new utils.Buf8(state.wsize);
+  }
+
+  /* copy state->wsize or less output bytes into the circular window */
+  if (copy >= state.wsize) {
+    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
+    state.wnext = 0;
+    state.whave = state.wsize;
+  }
+  else {
+    dist = state.wsize - state.wnext;
+    if (dist > copy) {
+      dist = copy;
+    }
+    //zmemcpy(state->window + state->wnext, end - copy, dist);
+    utils.arraySet(state.window, src, end - copy, dist, state.wnext);
+    copy -= dist;
+    if (copy) {
+      //zmemcpy(state->window, end - copy, copy);
+      utils.arraySet(state.window, src, end - copy, copy, 0);
+      state.wnext = copy;
+      state.whave = state.wsize;
+    }
+    else {
+      state.wnext += dist;
+      if (state.wnext === state.wsize) { state.wnext = 0; }
+      if (state.whave < state.wsize) { state.whave += dist; }
+    }
+  }
+  return 0;
+}
+
+function inflate(strm, flush) {
+  var state;
+  var input, output;          // input/output buffers
+  var next;                   /* next input INDEX */
+  var put;                    /* next output INDEX */
+  var have, left;             /* available input and output */
+  var hold;                   /* bit buffer */
+  var bits;                   /* bits in bit buffer */
+  var _in, _out;              /* save starting available input and output */
+  var copy;                   /* number of stored or match bytes to copy */
+  var from;                   /* where to copy match bytes from */
+  var from_source;
+  var here = 0;               /* current decoding table entry */
+  var here_bits, here_op, here_val; // paked "here" denormalized (JS specific)
+  //var last;                   /* parent table entry */
+  var last_bits, last_op, last_val; // paked "last" denormalized (JS specific)
+  var len;                    /* length to copy for repeats, bits to drop */
+  var ret;                    /* return code */
+  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */
+  var opts;
+
+  var n; // temporary var for NEED_BITS
+
+  var order = /* permutation of code lengths */
+    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];
+
+
+  if (!strm || !strm.state || !strm.output ||
+      (!strm.input && strm.avail_in !== 0)) {
+    return Z_STREAM_ERROR;
+  }
+
+  state = strm.state;
+  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */
+
+
+  //--- LOAD() ---
+  put = strm.next_out;
+  output = strm.output;
+  left = strm.avail_out;
+  next = strm.next_in;
+  input = strm.input;
+  have = strm.avail_in;
+  hold = state.hold;
+  bits = state.bits;
+  //---
+
+  _in = have;
+  _out = left;
+  ret = Z_OK;
+
+  inf_leave: // goto emulation
+  for (;;) {
+    switch (state.mode) {
+    case HEAD:
+      if (state.wrap === 0) {
+        state.mode = TYPEDO;
+        break;
+      }
+      //=== NEEDBITS(16);
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */
+        state.check = 0/*crc32(0L, Z_NULL, 0)*/;
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        state.mode = FLAGS;
+        break;
+      }
+      state.flags = 0;           /* expect zlib header */
+      if (state.head) {
+        state.head.done = false;
+      }
+      if (!(state.wrap & 1) ||   /* check if zlib header allowed */
+        (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {
+        strm.msg = 'incorrect header check';
+        state.mode = BAD;
+        break;
+      }
+      if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+      len = (hold & 0x0f)/*BITS(4)*/ + 8;
+      if (state.wbits === 0) {
+        state.wbits = len;
+      }
+      else if (len > state.wbits) {
+        strm.msg = 'invalid window size';
+        state.mode = BAD;
+        break;
+      }
+      state.dmax = 1 << len;
+      //Tracev((stderr, "inflate:   zlib header ok\n"));
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = hold & 0x200 ? DICTID : TYPE;
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      break;
+    case FLAGS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.flags = hold;
+      if ((state.flags & 0xff) !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      if (state.flags & 0xe000) {
+        strm.msg = 'unknown header flags set';
+        state.mode = BAD;
+        break;
+      }
+      if (state.head) {
+        state.head.text = ((hold >> 8) & 1);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = TIME;
+      /* falls through */
+    case TIME:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.time = hold;
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC4(state.check, hold)
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        hbuf[2] = (hold >>> 16) & 0xff;
+        hbuf[3] = (hold >>> 24) & 0xff;
+        state.check = crc32(state.check, hbuf, 4, 0);
+        //===
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = OS;
+      /* falls through */
+    case OS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.xflags = (hold & 0xff);
+        state.head.os = (hold >> 8);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = EXLEN;
+      /* falls through */
+    case EXLEN:
+      if (state.flags & 0x0400) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length = hold;
+        if (state.head) {
+          state.head.extra_len = hold;
+        }
+        if (state.flags & 0x0200) {
+          //=== CRC2(state.check, hold);
+          hbuf[0] = hold & 0xff;
+          hbuf[1] = (hold >>> 8) & 0xff;
+          state.check = crc32(state.check, hbuf, 2, 0);
+          //===//
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      else if (state.head) {
+        state.head.extra = null/*Z_NULL*/;
+      }
+      state.mode = EXTRA;
+      /* falls through */
+    case EXTRA:
+      if (state.flags & 0x0400) {
+        copy = state.length;
+        if (copy > have) { copy = have; }
+        if (copy) {
+          if (state.head) {
+            len = state.head.extra_len - state.length;
+            if (!state.head.extra) {
+              // Use untyped array for more conveniend processing later
+              state.head.extra = new Array(state.head.extra_len);
+            }
+            utils.arraySet(
+              state.head.extra,
+              input,
+              next,
+              // extra field is limited to 65536 bytes
+              // - no need for additional size check
+              copy,
+              /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
+              len
+            );
+            //zmemcpy(state.head.extra + len, next,
+            //        len + copy > state.head.extra_max ?
+            //        state.head.extra_max - len : copy);
+          }
+          if (state.flags & 0x0200) {
+            state.check = crc32(state.check, input, copy, next);
+          }
+          have -= copy;
+          next += copy;
+          state.length -= copy;
+        }
+        if (state.length) { break inf_leave; }
+      }
+      state.length = 0;
+      state.mode = NAME;
+      /* falls through */
+    case NAME:
+      if (state.flags & 0x0800) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          // TODO: 2 or 1 bytes?
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.name_max*/)) {
+            state.head.name += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.name = null;
+      }
+      state.length = 0;
+      state.mode = COMMENT;
+      /* falls through */
+    case COMMENT:
+      if (state.flags & 0x1000) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.comm_max*/)) {
+            state.head.comment += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.comment = null;
+      }
+      state.mode = HCRC;
+      /* falls through */
+    case HCRC:
+      if (state.flags & 0x0200) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.check & 0xffff)) {
+          strm.msg = 'header crc mismatch';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      if (state.head) {
+        state.head.hcrc = ((state.flags >> 9) & 1);
+        state.head.done = true;
+      }
+      strm.adler = state.check = 0;
+      state.mode = TYPE;
+      break;
+    case DICTID:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      strm.adler = state.check = zswap32(hold);
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = DICT;
+      /* falls through */
+    case DICT:
+      if (state.havedict === 0) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        return Z_NEED_DICT;
+      }
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = TYPE;
+      /* falls through */
+    case TYPE:
+      if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case TYPEDO:
+      if (state.last) {
+        //--- BYTEBITS() ---//
+        hold >>>= bits & 7;
+        bits -= bits & 7;
+        //---//
+        state.mode = CHECK;
+        break;
+      }
+      //=== NEEDBITS(3); */
+      while (bits < 3) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.last = (hold & 0x01)/*BITS(1)*/;
+      //--- DROPBITS(1) ---//
+      hold >>>= 1;
+      bits -= 1;
+      //---//
+
+      switch ((hold & 0x03)/*BITS(2)*/) {
+      case 0:                             /* stored block */
+        //Tracev((stderr, "inflate:     stored block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = STORED;
+        break;
+      case 1:                             /* fixed block */
+        fixedtables(state);
+        //Tracev((stderr, "inflate:     fixed codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = LEN_;             /* decode codes */
+        if (flush === Z_TREES) {
+          //--- DROPBITS(2) ---//
+          hold >>>= 2;
+          bits -= 2;
+          //---//
+          break inf_leave;
+        }
+        break;
+      case 2:                             /* dynamic block */
+        //Tracev((stderr, "inflate:     dynamic codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = TABLE;
+        break;
+      case 3:
+        strm.msg = 'invalid block type';
+        state.mode = BAD;
+      }
+      //--- DROPBITS(2) ---//
+      hold >>>= 2;
+      bits -= 2;
+      //---//
+      break;
+    case STORED:
+      //--- BYTEBITS() ---// /* go to byte boundary */
+      hold >>>= bits & 7;
+      bits -= bits & 7;
+      //---//
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {
+        strm.msg = 'invalid stored block lengths';
+        state.mode = BAD;
+        break;
+      }
+      state.length = hold & 0xffff;
+      //Tracev((stderr, "inflate:       stored length %u\n",
+      //        state.length));
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = COPY_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case COPY_:
+      state.mode = COPY;
+      /* falls through */
+    case COPY:
+      copy = state.length;
+      if (copy) {
+        if (copy > have) { copy = have; }
+        if (copy > left) { copy = left; }
+        if (copy === 0) { break inf_leave; }
+        //--- zmemcpy(put, next, copy); ---
+        utils.arraySet(output, input, next, copy, put);
+        //---//
+        have -= copy;
+        next += copy;
+        left -= copy;
+        put += copy;
+        state.length -= copy;
+        break;
+      }
+      //Tracev((stderr, "inflate:       stored end\n"));
+      state.mode = TYPE;
+      break;
+    case TABLE:
+      //=== NEEDBITS(14); */
+      while (bits < 14) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+//#ifndef PKZIP_BUG_WORKAROUND
+      if (state.nlen > 286 || state.ndist > 30) {
+        strm.msg = 'too many length or distance symbols';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracev((stderr, "inflate:       table sizes ok\n"));
+      state.have = 0;
+      state.mode = LENLENS;
+      /* falls through */
+    case LENLENS:
+      while (state.have < state.ncode) {
+        //=== NEEDBITS(3);
+        while (bits < 3) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);
+        //--- DROPBITS(3) ---//
+        hold >>>= 3;
+        bits -= 3;
+        //---//
+      }
+      while (state.have < 19) {
+        state.lens[order[state.have++]] = 0;
+      }
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      //state.next = state.codes;
+      //state.lencode = state.next;
+      // Switch to use dynamic table
+      state.lencode = state.lendyn;
+      state.lenbits = 7;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
+      state.lenbits = opts.bits;
+
+      if (ret) {
+        strm.msg = 'invalid code lengths set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, "inflate:       code lengths ok\n"));
+      state.have = 0;
+      state.mode = CODELENS;
+      /* falls through */
+    case CODELENS:
+      while (state.have < state.nlen + state.ndist) {
+        for (;;) {
+          here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        if (here_val < 16) {
+          //--- DROPBITS(here.bits) ---//
+          hold >>>= here_bits;
+          bits -= here_bits;
+          //---//
+          state.lens[state.have++] = here_val;
+        }
+        else {
+          if (here_val === 16) {
+            //=== NEEDBITS(here.bits + 2);
+            n = here_bits + 2;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            if (state.have === 0) {
+              strm.msg = 'invalid bit length repeat';
+              state.mode = BAD;
+              break;
+            }
+            len = state.lens[state.have - 1];
+            copy = 3 + (hold & 0x03);//BITS(2);
+            //--- DROPBITS(2) ---//
+            hold >>>= 2;
+            bits -= 2;
+            //---//
+          }
+          else if (here_val === 17) {
+            //=== NEEDBITS(here.bits + 3);
+            n = here_bits + 3;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 3 + (hold & 0x07);//BITS(3);
+            //--- DROPBITS(3) ---//
+            hold >>>= 3;
+            bits -= 3;
+            //---//
+          }
+          else {
+            //=== NEEDBITS(here.bits + 7);
+            n = here_bits + 7;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 11 + (hold & 0x7f);//BITS(7);
+            //--- DROPBITS(7) ---//
+            hold >>>= 7;
+            bits -= 7;
+            //---//
+          }
+          if (state.have + copy > state.nlen + state.ndist) {
+            strm.msg = 'invalid bit length repeat';
+            state.mode = BAD;
+            break;
+          }
+          while (copy--) {
+            state.lens[state.have++] = len;
+          }
+        }
+      }
+
+      /* handle error breaks in while */
+      if (state.mode === BAD) { break; }
+
+      /* check for end-of-block code (better have one) */
+      if (state.lens[256] === 0) {
+        strm.msg = 'invalid code -- missing end-of-block';
+        state.mode = BAD;
+        break;
+      }
+
+      /* build code tables -- note: do not change the lenbits or distbits
+         values here (9 and 6) without reading the comments in inftrees.h
+         concerning the ENOUGH constants, which depend on those values */
+      state.lenbits = 9;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.lenbits = opts.bits;
+      // state.lencode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid literal/lengths set';
+        state.mode = BAD;
+        break;
+      }
+
+      state.distbits = 6;
+      //state.distcode.copy(state.codes);
+      // Switch to use dynamic table
+      state.distcode = state.distdyn;
+      opts = { bits: state.distbits };
+      ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.distbits = opts.bits;
+      // state.distcode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid distances set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, 'inflate:       codes ok\n'));
+      state.mode = LEN_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case LEN_:
+      state.mode = LEN;
+      /* falls through */
+    case LEN:
+      if (have >= 6 && left >= 258) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        inflate_fast(strm, _out);
+        //--- LOAD() ---
+        put = strm.next_out;
+        output = strm.output;
+        left = strm.avail_out;
+        next = strm.next_in;
+        input = strm.input;
+        have = strm.avail_in;
+        hold = state.hold;
+        bits = state.bits;
+        //---
+
+        if (state.mode === TYPE) {
+          state.back = -1;
+        }
+        break;
+      }
+      state.back = 0;
+      for (;;) {
+        here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if (here_bits <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if (here_op && (here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.lencode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      state.length = here_val;
+      if (here_op === 0) {
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        state.mode = LIT;
+        break;
+      }
+      if (here_op & 32) {
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.back = -1;
+        state.mode = TYPE;
+        break;
+      }
+      if (here_op & 64) {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break;
+      }
+      state.extra = here_op & 15;
+      state.mode = LENEXT;
+      /* falls through */
+    case LENEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+      //Tracevv((stderr, "inflate:         length %u\n", state.length));
+      state.was = state.length;
+      state.mode = DIST;
+      /* falls through */
+    case DIST:
+      for (;;) {
+        here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if ((here_bits) <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if ((here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.distcode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      if (here_op & 64) {
+        strm.msg = 'invalid distance code';
+        state.mode = BAD;
+        break;
+      }
+      state.offset = here_val;
+      state.extra = (here_op) & 15;
+      state.mode = DISTEXT;
+      /* falls through */
+    case DISTEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+//#ifdef INFLATE_STRICT
+      if (state.offset > state.dmax) {
+        strm.msg = 'invalid distance too far back';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracevv((stderr, "inflate:         distance %u\n", state.offset));
+      state.mode = MATCH;
+      /* falls through */
+    case MATCH:
+      if (left === 0) { break inf_leave; }
+      copy = _out - left;
+      if (state.offset > copy) {         /* copy from window */
+        copy = state.offset - copy;
+        if (copy > state.whave) {
+          if (state.sane) {
+            strm.msg = 'invalid distance too far back';
+            state.mode = BAD;
+            break;
+          }
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//          Trace((stderr, "inflate.c too far\n"));
+//          copy -= state.whave;
+//          if (copy > state.length) { copy = state.length; }
+//          if (copy > left) { copy = left; }
+//          left -= copy;
+//          state.length -= copy;
+//          do {
+//            output[put++] = 0;
+//          } while (--copy);
+//          if (state.length === 0) { state.mode = LEN; }
+//          break;
+//#endif
+        }
+        if (copy > state.wnext) {
+          copy -= state.wnext;
+          from = state.wsize - copy;
+        }
+        else {
+          from = state.wnext - copy;
+        }
+        if (copy > state.length) { copy = state.length; }
+        from_source = state.window;
+      }
+      else {                              /* copy from output */
+        from_source = output;
+        from = put - state.offset;
+        copy = state.length;
+      }
+      if (copy > left) { copy = left; }
+      left -= copy;
+      state.length -= copy;
+      do {
+        output[put++] = from_source[from++];
+      } while (--copy);
+      if (state.length === 0) { state.mode = LEN; }
+      break;
+    case LIT:
+      if (left === 0) { break inf_leave; }
+      output[put++] = state.length;
+      left--;
+      state.mode = LEN;
+      break;
+    case CHECK:
+      if (state.wrap) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          // Use '|' insdead of '+' to make sure that result is signed
+          hold |= input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        _out -= left;
+        strm.total_out += _out;
+        state.total += _out;
+        if (_out) {
+          strm.adler = state.check =
+              /*UPDATE(state.check, put - _out, _out);*/
+              (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));
+
+        }
+        _out = left;
+        // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too
+        if ((state.flags ? hold : zswap32(hold)) !== state.check) {
+          strm.msg = 'incorrect data check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   check matches trailer\n"));
+      }
+      state.mode = LENGTH;
+      /* falls through */
+    case LENGTH:
+      if (state.wrap && state.flags) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.total & 0xffffffff)) {
+          strm.msg = 'incorrect length check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   length matches trailer\n"));
+      }
+      state.mode = DONE;
+      /* falls through */
+    case DONE:
+      ret = Z_STREAM_END;
+      break inf_leave;
+    case BAD:
+      ret = Z_DATA_ERROR;
+      break inf_leave;
+    case MEM:
+      return Z_MEM_ERROR;
+    case SYNC:
+      /* falls through */
+    default:
+      return Z_STREAM_ERROR;
+    }
+  }
+
+  // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave"
+
+  /*
+     Return from inflate(), updating the total counts and the check value.
+     If there was no progress during the inflate() call, return a buffer
+     error.  Call updatewindow() to create and/or update the window state.
+     Note: a memory error from inflate() is non-recoverable.
+   */
+
+  //--- RESTORE() ---
+  strm.next_out = put;
+  strm.avail_out = left;
+  strm.next_in = next;
+  strm.avail_in = have;
+  state.hold = hold;
+  state.bits = bits;
+  //---
+
+  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&
+                      (state.mode < CHECK || flush !== Z_FINISH))) {
+    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
+      state.mode = MEM;
+      return Z_MEM_ERROR;
+    }
+  }
+  _in -= strm.avail_in;
+  _out -= strm.avail_out;
+  strm.total_in += _in;
+  strm.total_out += _out;
+  state.total += _out;
+  if (state.wrap && _out) {
+    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
+      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));
+  }
+  strm.data_type = state.bits + (state.last ? 64 : 0) +
+                    (state.mode === TYPE ? 128 : 0) +
+                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
+  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
+    ret = Z_BUF_ERROR;
+  }
+  return ret;
+}
+
+function inflateEnd(strm) {
+
+  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  var state = strm.state;
+  if (state.window) {
+    state.window = null;
+  }
+  strm.state = null;
+  return Z_OK;
+}
+
+function inflateGetHeader(strm, head) {
+  var state;
+
+  /* check state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }
+
+  /* save header structure */
+  state.head = head;
+  head.done = false;
+  return Z_OK;
+}
+
+function inflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var state;
+  var dictid;
+  var ret;
+
+  /* check state */
+  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  if (state.wrap !== 0 && state.mode !== DICT) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* check for correct dictionary identifier */
+  if (state.mode === DICT) {
+    dictid = 1; /* adler32(0, null, 0)*/
+    /* dictid = adler32(dictid, dictionary, dictLength); */
+    dictid = adler32(dictid, dictionary, dictLength, 0);
+    if (dictid !== state.check) {
+      return Z_DATA_ERROR;
+    }
+  }
+  /* copy dictionary to window using updatewindow(), which will amend the
+   existing dictionary if appropriate */
+  ret = updatewindow(strm, dictionary, dictLength, dictLength);
+  if (ret) {
+    state.mode = MEM;
+    return Z_MEM_ERROR;
+  }
+  state.havedict = 1;
+  // Tracev((stderr, "inflate:   dictionary set\n"));
+  return Z_OK;
+}
+
+exports.inflateReset = inflateReset;
+exports.inflateReset2 = inflateReset2;
+exports.inflateResetKeep = inflateResetKeep;
+exports.inflateInit = inflateInit;
+exports.inflateInit2 = inflateInit2;
+exports.inflate = inflate;
+exports.inflateEnd = inflateEnd;
+exports.inflateGetHeader = inflateGetHeader;
+exports.inflateSetDictionary = inflateSetDictionary;
+exports.inflateInfo = 'pako inflate (from Nodeca project)';
+
+/* Not implemented
+exports.inflateCopy = inflateCopy;
+exports.inflateGetDictionary = inflateGetDictionary;
+exports.inflateMark = inflateMark;
+exports.inflatePrime = inflatePrime;
+exports.inflateSync = inflateSync;
+exports.inflateSyncPoint = inflateSyncPoint;
+exports.inflateUndermine = inflateUndermine;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+var MAXBITS = 15;
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+var lbase = [ /* Length codes 257..285 base */
+  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
+];
+
+var lext = [ /* Length codes 257..285 extra */
+  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
+  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78
+];
+
+var dbase = [ /* Distance codes 0..29 base */
+  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+  8193, 12289, 16385, 24577, 0, 0
+];
+
+var dext = [ /* Distance codes 0..29 extra */
+  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
+  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
+  28, 28, 29, 29, 64, 64
+];
+
+module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)
+{
+  var bits = opts.bits;
+      //here = opts.here; /* table entry for duplication */
+
+  var len = 0;               /* a code's length in bits */
+  var sym = 0;               /* index of code symbols */
+  var min = 0, max = 0;          /* minimum and maximum code lengths */
+  var root = 0;              /* number of index bits for root table */
+  var curr = 0;              /* number of index bits for current table */
+  var drop = 0;              /* code bits to drop for sub-table */
+  var left = 0;                   /* number of prefix codes available */
+  var used = 0;              /* code entries in table used */
+  var huff = 0;              /* Huffman code */
+  var incr;              /* for incrementing code, index */
+  var fill;              /* index for replicating entries */
+  var low;               /* low bits for current root entry */
+  var mask;              /* mask for low root bits */
+  var next;             /* next available space in table */
+  var base = null;     /* base value table to use */
+  var base_index = 0;
+//  var shoextra;    /* extra bits table to use */
+  var end;                    /* use base and extra for symbol > end */
+  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */
+  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */
+  var extra = null;
+  var extra_index = 0;
+
+  var here_bits, here_op, here_val;
+
+  /*
+   Process a set of code lengths to create a canonical Huffman code.  The
+   code lengths are lens[0..codes-1].  Each length corresponds to the
+   symbols 0..codes-1.  The Huffman code is generated by first sorting the
+   symbols by length from short to long, and retaining the symbol order
+   for codes with equal lengths.  Then the code starts with all zero bits
+   for the first code of the shortest length, and the codes are integer
+   increments for the same length, and zeros are appended as the length
+   increases.  For the deflate format, these bits are stored backwards
+   from their more natural integer increment ordering, and so when the
+   decoding tables are built in the large loop below, the integer codes
+   are incremented backwards.
+
+   This routine assumes, but does not check, that all of the entries in
+   lens[] are in the range 0..MAXBITS.  The caller must assure this.
+   1..MAXBITS is interpreted as that code length.  zero means that that
+   symbol does not occur in this code.
+
+   The codes are sorted by computing a count of codes for each length,
+   creating from that a table of starting indices for each length in the
+   sorted table, and then entering the symbols in order in the sorted
+   table.  The sorted table is work[], with that space being provided by
+   the caller.
+
+   The length counts are used for other purposes as well, i.e. finding
+   the minimum and maximum length codes, determining if there are any
+   codes at all, checking for a valid set of lengths, and looking ahead
+   at length counts to determine sub-table sizes when building the
+   decoding tables.
+   */
+
+  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
+  for (len = 0; len <= MAXBITS; len++) {
+    count[len] = 0;
+  }
+  for (sym = 0; sym < codes; sym++) {
+    count[lens[lens_index + sym]]++;
+  }
+
+  /* bound code lengths, force root to be within code lengths */
+  root = bits;
+  for (max = MAXBITS; max >= 1; max--) {
+    if (count[max] !== 0) { break; }
+  }
+  if (root > max) {
+    root = max;
+  }
+  if (max === 0) {                     /* no symbols to code at all */
+    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */
+    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;
+    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+
+    //table.op[opts.table_index] = 64;
+    //table.bits[opts.table_index] = 1;
+    //table.val[opts.table_index++] = 0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+    opts.bits = 1;
+    return 0;     /* no symbols, but wait for decoding to report error */
+  }
+  for (min = 1; min < max; min++) {
+    if (count[min] !== 0) { break; }
+  }
+  if (root < min) {
+    root = min;
+  }
+
+  /* check for an over-subscribed or incomplete set of lengths */
+  left = 1;
+  for (len = 1; len <= MAXBITS; len++) {
+    left <<= 1;
+    left -= count[len];
+    if (left < 0) {
+      return -1;
+    }        /* over-subscribed */
+  }
+  if (left > 0 && (type === CODES || max !== 1)) {
+    return -1;                      /* incomplete set */
+  }
+
+  /* generate offsets into symbol table for each length for sorting */
+  offs[1] = 0;
+  for (len = 1; len < MAXBITS; len++) {
+    offs[len + 1] = offs[len] + count[len];
+  }
+
+  /* sort symbols by length, by symbol order within each length */
+  for (sym = 0; sym < codes; sym++) {
+    if (lens[lens_index + sym] !== 0) {
+      work[offs[lens[lens_index + sym]]++] = sym;
+    }
+  }
+
+  /*
+   Create and fill in decoding tables.  In this loop, the table being
+   filled is at next and has curr index bits.  The code being used is huff
+   with length len.  That code is converted to an index by dropping drop
+   bits off of the bottom.  For codes where len is less than drop + curr,
+   those top drop + curr - len bits are incremented through all values to
+   fill the table with replicated entries.
+
+   root is the number of index bits for the root table.  When len exceeds
+   root, sub-tables are created pointed to by the root entry with an index
+   of the low root bits of huff.  This is saved in low to check for when a
+   new sub-table should be started.  drop is zero when the root table is
+   being filled, and drop is root when sub-tables are being filled.
+
+   When a new sub-table is needed, it is necessary to look ahead in the
+   code lengths to determine what size sub-table is needed.  The length
+   counts are used for this, and so count[] is decremented as codes are
+   entered in the tables.
+
+   used keeps track of how many table entries have been allocated from the
+   provided *table space.  It is checked for LENS and DIST tables against
+   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
+   the initial root table size constants.  See the comments in inftrees.h
+   for more information.
+
+   sym increments through all symbols, and the loop terminates when
+   all codes of length max, i.e. all codes, have been processed.  This
+   routine permits incomplete codes, so another loop after this one fills
+   in the rest of the decoding tables with invalid code markers.
+   */
+
+  /* set up for code type */
+  // poor man optimization - use if-else instead of switch,
+  // to avoid deopts in old v8
+  if (type === CODES) {
+    base = extra = work;    /* dummy value--not used */
+    end = 19;
+
+  } else if (type === LENS) {
+    base = lbase;
+    base_index -= 257;
+    extra = lext;
+    extra_index -= 257;
+    end = 256;
+
+  } else {                    /* DISTS */
+    base = dbase;
+    extra = dext;
+    end = -1;
+  }
+
+  /* initialize opts for loop */
+  huff = 0;                   /* starting code */
+  sym = 0;                    /* starting code symbol */
+  len = min;                  /* starting code length */
+  next = table_index;              /* current table to fill in */
+  curr = root;                /* current table index bits */
+  drop = 0;                   /* current bits to drop from code for index */
+  low = -1;                   /* trigger new sub-table when len > root */
+  used = 1 << root;          /* use root table entries */
+  mask = used - 1;            /* mask for comparing low */
+
+  /* check available table space */
+  if ((type === LENS && used > ENOUGH_LENS) ||
+    (type === DISTS && used > ENOUGH_DISTS)) {
+    return 1;
+  }
+
+  /* process all codes and make table entries */
+  for (;;) {
+    /* create table entry */
+    here_bits = len - drop;
+    if (work[sym] < end) {
+      here_op = 0;
+      here_val = work[sym];
+    }
+    else if (work[sym] > end) {
+      here_op = extra[extra_index + work[sym]];
+      here_val = base[base_index + work[sym]];
+    }
+    else {
+      here_op = 32 + 64;         /* end of block */
+      here_val = 0;
+    }
+
+    /* replicate for those indices with low len bits equal to huff */
+    incr = 1 << (len - drop);
+    fill = 1 << curr;
+    min = fill;                 /* save offset to next table */
+    do {
+      fill -= incr;
+      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;
+    } while (fill !== 0);
+
+    /* backwards increment the len-bit code huff */
+    incr = 1 << (len - 1);
+    while (huff & incr) {
+      incr >>= 1;
+    }
+    if (incr !== 0) {
+      huff &= incr - 1;
+      huff += incr;
+    } else {
+      huff = 0;
+    }
+
+    /* go to next symbol, update count, len */
+    sym++;
+    if (--count[len] === 0) {
+      if (len === max) { break; }
+      len = lens[lens_index + work[sym]];
+    }
+
+    /* create new sub-table if needed */
+    if (len > root && (huff & mask) !== low) {
+      /* if first time, transition to sub-tables */
+      if (drop === 0) {
+        drop = root;
+      }
+
+      /* increment past last table */
+      next += min;            /* here min is 1 << curr */
+
+      /* determine length of next table */
+      curr = len - drop;
+      left = 1 << curr;
+      while (curr + drop < max) {
+        left -= count[curr + drop];
+        if (left <= 0) { break; }
+        curr++;
+        left <<= 1;
+      }
+
+      /* check for enough space */
+      used += 1 << curr;
+      if ((type === LENS && used > ENOUGH_LENS) ||
+        (type === DISTS && used > ENOUGH_DISTS)) {
+        return 1;
+      }
+
+      /* point entry in root table to sub-table */
+      low = huff & mask;
+      /*table.op[low] = curr;
+      table.bits[low] = root;
+      table.val[low] = next - opts.table_index;*/
+      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;
+    }
+  }
+
+  /* fill in remaining table entry if code is incomplete (guaranteed to have
+   at most one remaining entry, since if the code is incomplete, the
+   maximum code length that was allowed to get this far is one bit) */
+  if (huff !== 0) {
+    //table.op[next + huff] = 64;            /* invalid code marker */
+    //table.bits[next + huff] = len - drop;
+    //table.val[next + huff] = 0;
+    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;
+  }
+
+  /* set return parameters */
+  //opts.table_index += used;
+  opts.bits = root;
+  return 0;
+};
+
+},{"../utils/common":62}],72:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+  2:      'need dictionary',     /* Z_NEED_DICT       2  */
+  1:      'stream end',          /* Z_STREAM_END      1  */
+  0:      '',                    /* Z_OK              0  */
+  '-1':   'file error',          /* Z_ERRNO         (-1) */
+  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */
+  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */
+  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */
+  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */
+  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */
+};
+
+},{}],73:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+//var Z_FILTERED          = 1;
+//var Z_HUFFMAN_ONLY      = 2;
+//var Z_RLE               = 3;
+var Z_FIXED               = 4;
+//var Z_DEFAULT_STRATEGY  = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+var Z_BINARY              = 0;
+var Z_TEXT                = 1;
+//var Z_ASCII             = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+/*============================================================================*/
+
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+// From zutil.h
+
+var STORED_BLOCK = 0;
+var STATIC_TREES = 1;
+var DYN_TREES    = 2;
+/* The three kinds of block type */
+
+var MIN_MATCH    = 3;
+var MAX_MATCH    = 258;
+/* The minimum and maximum match lengths */
+
+// From deflate.h
+/* ===========================================================================
+ * Internal compression state.
+ */
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+
+var D_CODES       = 30;
+/* number of distance codes */
+
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+
+var MAX_BITS      = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var Buf_size      = 16;
+/* size of bit buffer in bi_buf */
+
+
+/* ===========================================================================
+ * Constants
+ */
+
+var MAX_BL_BITS = 7;
+/* Bit length codes must not exceed MAX_BL_BITS bits */
+
+var END_BLOCK   = 256;
+/* end of block literal code */
+
+var REP_3_6     = 16;
+/* repeat previous bit length 3-6 times (2 bits of repeat count) */
+
+var REPZ_3_10   = 17;
+/* repeat a zero length 3-10 times  (3 bits of repeat count) */
+
+var REPZ_11_138 = 18;
+/* repeat a zero length 11-138 times  (7 bits of repeat count) */
+
+/* eslint-disable comma-spacing,array-bracket-spacing */
+var extra_lbits =   /* extra bits for each length code */
+  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];
+
+var extra_dbits =   /* extra bits for each distance code */
+  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];
+
+var extra_blbits =  /* extra bits for each bit length code */
+  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];
+
+var bl_order =
+  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
+/* eslint-enable comma-spacing,array-bracket-spacing */
+
+/* The lengths of the bit length codes are sent in order of decreasing
+ * probability, to avoid transmitting the lengths for unused bit length codes.
+ */
+
+/* ===========================================================================
+ * Local data. These are initialized only once.
+ */
+
+// We pre-fill arrays with 0 to avoid uninitialized gaps
+
+var DIST_CODE_LEN = 512; /* see definition of array dist_code below */
+
+// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1
+var static_ltree  = new Array((L_CODES + 2) * 2);
+zero(static_ltree);
+/* The static literal tree. Since the bit lengths are imposed, there is no
+ * need for the L_CODES extra codes used during heap construction. However
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
+ * below).
+ */
+
+var static_dtree  = new Array(D_CODES * 2);
+zero(static_dtree);
+/* The static distance tree. (Actually a trivial tree since all codes use
+ * 5 bits.)
+ */
+
+var _dist_code    = new Array(DIST_CODE_LEN);
+zero(_dist_code);
+/* Distance codes. The first 256 values correspond to the distances
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
+ * the 15 bit distances.
+ */
+
+var _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);
+zero(_length_code);
+/* length code for each normalized match length (0 == MIN_MATCH) */
+
+var base_length   = new Array(LENGTH_CODES);
+zero(base_length);
+/* First normalized length for each code (0 = MIN_MATCH) */
+
+var base_dist     = new Array(D_CODES);
+zero(base_dist);
+/* First normalized distance for each code (0 = distance of 1) */
+
+
+function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
+
+  this.static_tree  = static_tree;  /* static tree or NULL */
+  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */
+  this.extra_base   = extra_base;   /* base index for extra_bits */
+  this.elems        = elems;        /* max number of elements in the tree */
+  this.max_length   = max_length;   /* max bit length for the codes */
+
+  // show if `static_tree` has data or dummy - needed for monomorphic objects
+  this.has_stree    = static_tree && static_tree.length;
+}
+
+
+var static_l_desc;
+var static_d_desc;
+var static_bl_desc;
+
+
+function TreeDesc(dyn_tree, stat_desc) {
+  this.dyn_tree = dyn_tree;     /* the dynamic tree */
+  this.max_code = 0;            /* largest code with non zero frequency */
+  this.stat_desc = stat_desc;   /* the corresponding static tree */
+}
+
+
+
+function d_code(dist) {
+  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
+}
+
+
+/* ===========================================================================
+ * Output a short LSB first on the stream.
+ * IN assertion: there is enough room in pendingBuf.
+ */
+function put_short(s, w) {
+//    put_byte(s, (uch)((w) & 0xff));
+//    put_byte(s, (uch)((ush)(w) >> 8));
+  s.pending_buf[s.pending++] = (w) & 0xff;
+  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;
+}
+
+
+/* ===========================================================================
+ * Send a value on a given number of bits.
+ * IN assertion: length <= 16 and value fits in length bits.
+ */
+function send_bits(s, value, length) {
+  if (s.bi_valid > (Buf_size - length)) {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    put_short(s, s.bi_buf);
+    s.bi_buf = value >> (Buf_size - s.bi_valid);
+    s.bi_valid += length - Buf_size;
+  } else {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    s.bi_valid += length;
+  }
+}
+
+
+function send_code(s, c, tree) {
+  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);
+}
+
+
+/* ===========================================================================
+ * Reverse the first len bits of a code, using straightforward code (a faster
+ * method would use a table)
+ * IN assertion: 1 <= len <= 15
+ */
+function bi_reverse(code, len) {
+  var res = 0;
+  do {
+    res |= code & 1;
+    code >>>= 1;
+    res <<= 1;
+  } while (--len > 0);
+  return res >>> 1;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer, keeping at most 7 bits in it.
+ */
+function bi_flush(s) {
+  if (s.bi_valid === 16) {
+    put_short(s, s.bi_buf);
+    s.bi_buf = 0;
+    s.bi_valid = 0;
+
+  } else if (s.bi_valid >= 8) {
+    s.pending_buf[s.pending++] = s.bi_buf & 0xff;
+    s.bi_buf >>= 8;
+    s.bi_valid -= 8;
+  }
+}
+
+
+/* ===========================================================================
+ * Compute the optimal bit lengths for a tree and update the total bit length
+ * for the current block.
+ * IN assertion: the fields freq and dad are set, heap[heap_max] and
+ *    above are the tree nodes sorted by increasing frequency.
+ * OUT assertions: the field len is set to the optimal bit length, the
+ *     array bl_count contains the frequencies for each bit length.
+ *     The length opt_len is updated; static_len is also updated if stree is
+ *     not null.
+ */
+function gen_bitlen(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc;    /* the tree descriptor */
+{
+  var tree            = desc.dyn_tree;
+  var max_code        = desc.max_code;
+  var stree           = desc.stat_desc.static_tree;
+  var has_stree       = desc.stat_desc.has_stree;
+  var extra           = desc.stat_desc.extra_bits;
+  var base            = desc.stat_desc.extra_base;
+  var max_length      = desc.stat_desc.max_length;
+  var h;              /* heap index */
+  var n, m;           /* iterate over the tree elements */
+  var bits;           /* bit length */
+  var xbits;          /* extra bits */
+  var f;              /* frequency */
+  var overflow = 0;   /* number of elements with bit length too large */
+
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    s.bl_count[bits] = 0;
+  }
+
+  /* In a first pass, compute the optimal bit lengths (which may
+   * overflow in the case of the bit length tree).
+   */
+  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */
+
+  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
+    n = s.heap[h];
+    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;
+    if (bits > max_length) {
+      bits = max_length;
+      overflow++;
+    }
+    tree[n * 2 + 1]/*.Len*/ = bits;
+    /* We overwrite tree[n].Dad which is no longer needed */
+
+    if (n > max_code) { continue; } /* not a leaf node */
+
+    s.bl_count[bits]++;
+    xbits = 0;
+    if (n >= base) {
+      xbits = extra[n - base];
+    }
+    f = tree[n * 2]/*.Freq*/;
+    s.opt_len += f * (bits + xbits);
+    if (has_stree) {
+      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);
+    }
+  }
+  if (overflow === 0) { return; }
+
+  // Trace((stderr,"\nbit length overflow\n"));
+  /* This happens for example on obj2 and pic of the Calgary corpus */
+
+  /* Find the first bit length which could increase: */
+  do {
+    bits = max_length - 1;
+    while (s.bl_count[bits] === 0) { bits--; }
+    s.bl_count[bits]--;      /* move one leaf down the tree */
+    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */
+    s.bl_count[max_length]--;
+    /* The brother of the overflow item also moves one step up,
+     * but this does not affect bl_count[max_length]
+     */
+    overflow -= 2;
+  } while (overflow > 0);
+
+  /* Now recompute all bit lengths, scanning in increasing frequency.
+   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
+   * lengths instead of fixing only the wrong ones. This idea is taken
+   * from 'ar' written by Haruhiko Okumura.)
+   */
+  for (bits = max_length; bits !== 0; bits--) {
+    n = s.bl_count[bits];
+    while (n !== 0) {
+      m = s.heap[--h];
+      if (m > max_code) { continue; }
+      if (tree[m * 2 + 1]/*.Len*/ !== bits) {
+        // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;
+        tree[m * 2 + 1]/*.Len*/ = bits;
+      }
+      n--;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Generate the codes for a given tree and bit counts (which need not be
+ * optimal).
+ * IN assertion: the array bl_count contains the bit length statistics for
+ * the given tree and the field len is set for all tree elements.
+ * OUT assertion: the field code is set for all tree elements of non
+ *     zero code length.
+ */
+function gen_codes(tree, max_code, bl_count)
+//    ct_data *tree;             /* the tree to decorate */
+//    int max_code;              /* largest code with non zero frequency */
+//    ushf *bl_count;            /* number of codes at each bit length */
+{
+  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */
+  var code = 0;              /* running code value */
+  var bits;                  /* bit index */
+  var n;                     /* code index */
+
+  /* The distribution counts are first used to generate the code values
+   * without bit reversal.
+   */
+  for (bits = 1; bits <= MAX_BITS; bits++) {
+    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
+  }
+  /* Check that the bit counts in bl_count are consistent. The last code
+   * must be all ones.
+   */
+  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
+  //        "inconsistent bit counts");
+  //Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
+
+  for (n = 0;  n <= max_code; n++) {
+    var len = tree[n * 2 + 1]/*.Len*/;
+    if (len === 0) { continue; }
+    /* Now reverse the bits */
+    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);
+
+    //Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
+    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
+  }
+}
+
+
+/* ===========================================================================
+ * Initialize the various 'constant' tables.
+ */
+function tr_static_init() {
+  var n;        /* iterates over tree elements */
+  var bits;     /* bit counter */
+  var length;   /* length value */
+  var code;     /* code value */
+  var dist;     /* distance index */
+  var bl_count = new Array(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  // do check in _tr_init()
+  //if (static_init_done) return;
+
+  /* For some embedded targets, global variables are not initialized: */
+/*#ifdef NO_INIT_GLOBAL_POINTERS
+  static_l_desc.static_tree = static_ltree;
+  static_l_desc.extra_bits = extra_lbits;
+  static_d_desc.static_tree = static_dtree;
+  static_d_desc.extra_bits = extra_dbits;
+  static_bl_desc.extra_bits = extra_blbits;
+#endif*/
+
+  /* Initialize the mapping length (0..255) -> length code (0..28) */
+  length = 0;
+  for (code = 0; code < LENGTH_CODES - 1; code++) {
+    base_length[code] = length;
+    for (n = 0; n < (1 << extra_lbits[code]); n++) {
+      _length_code[length++] = code;
+    }
+  }
+  //Assert (length == 256, "tr_static_init: length != 256");
+  /* Note that the length 255 (match length 258) can be represented
+   * in two different ways: code 284 + 5 bits or code 285, so we
+   * overwrite length_code[255] to use the best encoding:
+   */
+  _length_code[length - 1] = code;
+
+  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
+  dist = 0;
+  for (code = 0; code < 16; code++) {
+    base_dist[code] = dist;
+    for (n = 0; n < (1 << extra_dbits[code]); n++) {
+      _dist_code[dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: dist != 256");
+  dist >>= 7; /* from now on, all distances are divided by 128 */
+  for (; code < D_CODES; code++) {
+    base_dist[code] = dist << 7;
+    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
+      _dist_code[256 + dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: 256+dist != 512");
+
+  /* Construct the codes of the static literal tree */
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    bl_count[bits] = 0;
+  }
+
+  n = 0;
+  while (n <= 143) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  while (n <= 255) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 9;
+    n++;
+    bl_count[9]++;
+  }
+  while (n <= 279) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 7;
+    n++;
+    bl_count[7]++;
+  }
+  while (n <= 287) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  /* Codes 286 and 287 do not exist, but we must include them in the
+   * tree construction to get a canonical Huffman tree (longest code
+   * all ones)
+   */
+  gen_codes(static_ltree, L_CODES + 1, bl_count);
+
+  /* The static distance tree is trivial: */
+  for (n = 0; n < D_CODES; n++) {
+    static_dtree[n * 2 + 1]/*.Len*/ = 5;
+    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
+  }
+
+  // Now data ready and we can init static trees
+  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
+  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);
+  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);
+
+  //static_init_done = true;
+}
+
+
+/* ===========================================================================
+ * Initialize a new block.
+ */
+function init_block(s) {
+  var n; /* iterates over tree elements */
+
+  /* Initialize the trees. */
+  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
+
+  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
+  s.opt_len = s.static_len = 0;
+  s.last_lit = s.matches = 0;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer and align the output on a byte boundary
+ */
+function bi_windup(s)
+{
+  if (s.bi_valid > 8) {
+    put_short(s, s.bi_buf);
+  } else if (s.bi_valid > 0) {
+    //put_byte(s, (Byte)s->bi_buf);
+    s.pending_buf[s.pending++] = s.bi_buf;
+  }
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+}
+
+/* ===========================================================================
+ * Copy a stored block, storing first the length and its
+ * one's complement if requested.
+ */
+function copy_block(s, buf, len, header)
+//DeflateState *s;
+//charf    *buf;    /* the input data */
+//unsigned len;     /* its length */
+//int      header;  /* true if block header must be written */
+{
+  bi_windup(s);        /* align on byte boundary */
+
+  if (header) {
+    put_short(s, len);
+    put_short(s, ~len);
+  }
+//  while (len--) {
+//    put_byte(s, *buf++);
+//  }
+  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
+  s.pending += len;
+}
+
+/* ===========================================================================
+ * Compares to subtrees, using the tree depth as tie breaker when
+ * the subtrees have equal frequency. This minimizes the worst case length.
+ */
+function smaller(tree, n, m, depth) {
+  var _n2 = n * 2;
+  var _m2 = m * 2;
+  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||
+         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));
+}
+
+/* ===========================================================================
+ * Restore the heap property by moving down the tree starting at node k,
+ * exchanging a node with the smallest of its two sons if necessary, stopping
+ * when the heap property is re-established (each father smaller than its
+ * two sons).
+ */
+function pqdownheap(s, tree, k)
+//    deflate_state *s;
+//    ct_data *tree;  /* the tree to restore */
+//    int k;               /* node to move down */
+{
+  var v = s.heap[k];
+  var j = k << 1;  /* left son of k */
+  while (j <= s.heap_len) {
+    /* Set j to the smallest of the two sons: */
+    if (j < s.heap_len &&
+      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
+      j++;
+    }
+    /* Exit if v is smaller than both sons */
+    if (smaller(tree, v, s.heap[j], s.depth)) { break; }
+
+    /* Exchange v with the smallest son */
+    s.heap[k] = s.heap[j];
+    k = j;
+
+    /* And continue down the tree, setting j to the left son of k */
+    j <<= 1;
+  }
+  s.heap[k] = v;
+}
+
+
+// inlined manually
+// var SMALLEST = 1;
+
+/* ===========================================================================
+ * Send the block data compressed using the given Huffman trees
+ */
+function compress_block(s, ltree, dtree)
+//    deflate_state *s;
+//    const ct_data *ltree; /* literal tree */
+//    const ct_data *dtree; /* distance tree */
+{
+  var dist;           /* distance of matched string */
+  var lc;             /* match length or unmatched char (if dist == 0) */
+  var lx = 0;         /* running index in l_buf */
+  var code;           /* the code to send */
+  var extra;          /* number of extra bits to send */
+
+  if (s.last_lit !== 0) {
+    do {
+      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);
+      lc = s.pending_buf[s.l_buf + lx];
+      lx++;
+
+      if (dist === 0) {
+        send_code(s, lc, ltree); /* send a literal byte */
+        //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
+      } else {
+        /* Here, lc is the match length - MIN_MATCH */
+        code = _length_code[lc];
+        send_code(s, code + LITERALS + 1, ltree); /* send the length code */
+        extra = extra_lbits[code];
+        if (extra !== 0) {
+          lc -= base_length[code];
+          send_bits(s, lc, extra);       /* send the extra length bits */
+        }
+        dist--; /* dist is now the match distance - 1 */
+        code = d_code(dist);
+        //Assert (code < D_CODES, "bad d_code");
+
+        send_code(s, code, dtree);       /* send the distance code */
+        extra = extra_dbits[code];
+        if (extra !== 0) {
+          dist -= base_dist[code];
+          send_bits(s, dist, extra);   /* send the extra distance bits */
+        }
+      } /* literal or match pair ? */
+
+      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
+      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
+      //       "pendingBuf overflow");
+
+    } while (lx < s.last_lit);
+  }
+
+  send_code(s, END_BLOCK, ltree);
+}
+
+
+/* ===========================================================================
+ * Construct one Huffman tree and assigns the code bit strings and lengths.
+ * Update the total bit length for the current block.
+ * IN assertion: the field freq is set for all tree elements.
+ * OUT assertions: the fields len and code are set to the optimal bit length
+ *     and corresponding code. The length opt_len is updated; static_len is
+ *     also updated if stree is not null. The field max_code is set.
+ */
+function build_tree(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc; /* the tree descriptor */
+{
+  var tree     = desc.dyn_tree;
+  var stree    = desc.stat_desc.static_tree;
+  var has_stree = desc.stat_desc.has_stree;
+  var elems    = desc.stat_desc.elems;
+  var n, m;          /* iterate over heap elements */
+  var max_code = -1; /* largest code with non zero frequency */
+  var node;          /* new node being created */
+
+  /* Construct the initial heap, with least frequent element in
+   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
+   * heap[0] is not used.
+   */
+  s.heap_len = 0;
+  s.heap_max = HEAP_SIZE;
+
+  for (n = 0; n < elems; n++) {
+    if (tree[n * 2]/*.Freq*/ !== 0) {
+      s.heap[++s.heap_len] = max_code = n;
+      s.depth[n] = 0;
+
+    } else {
+      tree[n * 2 + 1]/*.Len*/ = 0;
+    }
+  }
+
+  /* The pkzip format requires that at least one distance code exists,
+   * and that at least one bit should be sent even if there is only one
+   * possible code. So to avoid special checks later on we force at least
+   * two codes of non zero frequency.
+   */
+  while (s.heap_len < 2) {
+    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);
+    tree[node * 2]/*.Freq*/ = 1;
+    s.depth[node] = 0;
+    s.opt_len--;
+
+    if (has_stree) {
+      s.static_len -= stree[node * 2 + 1]/*.Len*/;
+    }
+    /* node is 0 or 1 so it does not have extra bits */
+  }
+  desc.max_code = max_code;
+
+  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
+   * establish sub-heaps of increasing lengths:
+   */
+  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }
+
+  /* Construct the Huffman tree by repeatedly combining the least two
+   * frequent nodes.
+   */
+  node = elems;              /* next internal node of the tree */
+  do {
+    //pqremove(s, tree, n);  /* n = node of least frequency */
+    /*** pqremove ***/
+    n = s.heap[1/*SMALLEST*/];
+    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+    /***/
+
+    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */
+
+    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */
+    s.heap[--s.heap_max] = m;
+
+    /* Create a new node father of n and m */
+    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;
+    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
+    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;
+
+    /* and insert the new node in the heap */
+    s.heap[1/*SMALLEST*/] = node++;
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+
+  } while (s.heap_len >= 2);
+
+  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];
+
+  /* At this point, the fields freq and dad are set. We can now
+   * generate the bit lengths.
+   */
+  gen_bitlen(s, desc);
+
+  /* The field len is now set, we can generate the bit codes */
+  gen_codes(tree, max_code, s.bl_count);
+}
+
+
+/* ===========================================================================
+ * Scan a literal or distance tree to determine the frequencies of the codes
+ * in the bit length tree.
+ */
+function scan_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree;   /* the tree to be scanned */
+//    int max_code;    /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      s.bl_tree[curlen * 2]/*.Freq*/ += count;
+
+    } else if (curlen !== 0) {
+
+      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
+      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
+
+    } else if (count <= 10) {
+      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
+
+    } else {
+      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
+    }
+
+    count = 0;
+    prevlen = curlen;
+
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Send a literal or distance tree in compressed form, using the codes in
+ * bl_tree.
+ */
+function send_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree; /* the tree to be scanned */
+//    int max_code;       /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  /* tree[max_code+1].Len = -1; */  /* guard already set */
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);
+
+    } else if (curlen !== 0) {
+      if (curlen !== prevlen) {
+        send_code(s, curlen, s.bl_tree);
+        count--;
+      }
+      //Assert(count >= 3 && count <= 6, " 3_6?");
+      send_code(s, REP_3_6, s.bl_tree);
+      send_bits(s, count - 3, 2);
+
+    } else if (count <= 10) {
+      send_code(s, REPZ_3_10, s.bl_tree);
+      send_bits(s, count - 3, 3);
+
+    } else {
+      send_code(s, REPZ_11_138, s.bl_tree);
+      send_bits(s, count - 11, 7);
+    }
+
+    count = 0;
+    prevlen = curlen;
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Construct the Huffman tree for the bit lengths and return the index in
+ * bl_order of the last bit length code to send.
+ */
+function build_bl_tree(s) {
+  var max_blindex;  /* index of last bit length code of non zero freq */
+
+  /* Determine the bit length frequencies for literal and distance trees */
+  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
+  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
+
+  /* Build the bit length tree: */
+  build_tree(s, s.bl_desc);
+  /* opt_len now includes the length of the tree representations, except
+   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
+   */
+
+  /* Determine the number of bit length codes to send. The pkzip format
+   * requires that at least 4 bit length codes be sent. (appnote.txt says
+   * 3 but the actual value used is 4.)
+   */
+  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
+    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {
+      break;
+    }
+  }
+  /* Update opt_len to include the bit length tree and counts */
+  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
+  //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
+  //        s->opt_len, s->static_len));
+
+  return max_blindex;
+}
+
+
+/* ===========================================================================
+ * Send the header for a block using dynamic Huffman trees: the counts, the
+ * lengths of the bit length codes, the literal tree and the distance tree.
+ * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
+ */
+function send_all_trees(s, lcodes, dcodes, blcodes)
+//    deflate_state *s;
+//    int lcodes, dcodes, blcodes; /* number of codes for each tree */
+{
+  var rank;                    /* index in bl_order */
+
+  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
+  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
+  //        "too many codes");
+  //Tracev((stderr, "\nbl counts: "));
+  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
+  send_bits(s, dcodes - 1,   5);
+  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */
+  for (rank = 0; rank < blcodes; rank++) {
+    //Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
+    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);
+  }
+  //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */
+  //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */
+  //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
+}
+
+
+/* ===========================================================================
+ * Check if the data type is TEXT or BINARY, using the following algorithm:
+ * - TEXT if the two conditions below are satisfied:
+ *    a) There are no non-portable control characters belonging to the
+ *       "black list" (0..6, 14..25, 28..31).
+ *    b) There is at least one printable character belonging to the
+ *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
+ * - BINARY otherwise.
+ * - The following partially-portable control characters form a
+ *   "gray list" that is ignored in this detection algorithm:
+ *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
+ * IN assertion: the fields Freq of dyn_ltree are set.
+ */
+function detect_data_type(s) {
+  /* black_mask is the bit mask of black-listed bytes
+   * set bits 0..6, 14..25, and 28..31
+   * 0xf3ffc07f = binary 11110011111111111100000001111111
+   */
+  var black_mask = 0xf3ffc07f;
+  var n;
+
+  /* Check for non-textual ("black-listed") bytes. */
+  for (n = 0; n <= 31; n++, black_mask >>>= 1) {
+    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {
+      return Z_BINARY;
+    }
+  }
+
+  /* Check for textual ("white-listed") bytes. */
+  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||
+      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
+    return Z_TEXT;
+  }
+  for (n = 32; n < LITERALS; n++) {
+    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
+      return Z_TEXT;
+    }
+  }
+
+  /* There are no "black-listed" or "white-listed" bytes:
+   * this stream either is empty or has tolerated ("gray-listed") bytes only.
+   */
+  return Z_BINARY;
+}
+
+
+var static_init_done = false;
+
+/* ===========================================================================
+ * Initialize the tree data structures for a new zlib stream.
+ */
+function _tr_init(s)
+{
+
+  if (!static_init_done) {
+    tr_static_init();
+    static_init_done = true;
+  }
+
+  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);
+  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);
+  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
+
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+
+  /* Initialize the first block of the first file: */
+  init_block(s);
+}
+
+
+/* ===========================================================================
+ * Send a stored block
+ */
+function _tr_stored_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */
+  copy_block(s, buf, stored_len, true); /* with header */
+}
+
+
+/* ===========================================================================
+ * Send one empty static block to give enough lookahead for inflate.
+ * This takes 10 bits, of which 7 may remain in the bit buffer.
+ */
+function _tr_align(s) {
+  send_bits(s, STATIC_TREES << 1, 3);
+  send_code(s, END_BLOCK, static_ltree);
+  bi_flush(s);
+}
+
+
+/* ===========================================================================
+ * Determine the best encoding for the current block: dynamic trees, static
+ * trees or store, and output the encoded block to the zip file.
+ */
+function _tr_flush_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block, or NULL if too old */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */
+  var max_blindex = 0;        /* index of last bit length code of non zero freq */
+
+  /* Build the Huffman trees unless a stored block is forced */
+  if (s.level > 0) {
+
+    /* Check if the file is binary or text */
+    if (s.strm.data_type === Z_UNKNOWN) {
+      s.strm.data_type = detect_data_type(s);
+    }
+
+    /* Construct the literal and distance trees */
+    build_tree(s, s.l_desc);
+    // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+
+    build_tree(s, s.d_desc);
+    // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+    /* At this point, opt_len and static_len are the total bit lengths of
+     * the compressed block data, excluding the tree representations.
+     */
+
+    /* Build the bit length tree for the above two trees, and get the index
+     * in bl_order of the last bit length code to send.
+     */
+    max_blindex = build_bl_tree(s);
+
+    /* Determine the best encoding. Compute the block lengths in bytes. */
+    opt_lenb = (s.opt_len + 3 + 7) >>> 3;
+    static_lenb = (s.static_len + 3 + 7) >>> 3;
+
+    // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
+    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
+    //        s->last_lit));
+
+    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }
+
+  } else {
+    // Assert(buf != (char*)0, "lost buf");
+    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
+  }
+
+  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {
+    /* 4: two words for the lengths */
+
+    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
+     * Otherwise we can't have processed more than WSIZE input bytes since
+     * the last block flush, because compression would have been
+     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
+     * transform a block into a stored block.
+     */
+    _tr_stored_block(s, buf, stored_len, last);
+
+  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
+
+    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
+    compress_block(s, static_ltree, static_dtree);
+
+  } else {
+    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
+    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
+    compress_block(s, s.dyn_ltree, s.dyn_dtree);
+  }
+  // Assert (s->compressed_len == s->bits_sent, "bad compressed size");
+  /* The above check is made mod 2^32, for files larger than 512 MB
+   * and uLong implemented on 32 bits.
+   */
+  init_block(s);
+
+  if (last) {
+    bi_windup(s);
+  }
+  // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
+  //       s->compressed_len-7*last));
+}
+
+/* ===========================================================================
+ * Save the match info and tally the frequency counts. Return true if
+ * the current block must be flushed.
+ */
+function _tr_tally(s, dist, lc)
+//    deflate_state *s;
+//    unsigned dist;  /* distance of matched string */
+//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
+{
+  //var out_length, in_length, dcode;
+
+  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;
+  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;
+
+  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;
+  s.last_lit++;
+
+  if (dist === 0) {
+    /* lc is the unmatched char */
+    s.dyn_ltree[lc * 2]/*.Freq*/++;
+  } else {
+    s.matches++;
+    /* Here, lc is the match length - MIN_MATCH */
+    dist--;             /* dist = match distance - 1 */
+    //Assert((ush)dist < (ush)MAX_DIST(s) &&
+    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
+    //       (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
+
+    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;
+    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
+  }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+
+//#ifdef TRUNCATE_BLOCK
+//  /* Try to guess if it is profitable to stop the current block here */
+//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {
+//    /* Compute an upper bound for the compressed length */
+//    out_length = s.last_lit*8;
+//    in_length = s.strstart - s.block_start;
+//
+//    for (dcode = 0; dcode < D_CODES; dcode++) {
+//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);
+//    }
+//    out_length >>>= 3;
+//    //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
+//    //       s->last_lit, in_length, out_length,
+//    //       100L - out_length*100L/in_length));
+//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {
+//      return true;
+//    }
+//  }
+//#endif
+
+  return (s.last_lit === s.lit_bufsize - 1);
+  /* We avoid equality with lit_bufsize because of wraparound at 64K
+   * on 16 bit machines and because stored blocks are restricted to
+   * 64K-1 bytes.
+   */
+}
+
+exports._tr_init  = _tr_init;
+exports._tr_stored_block = _tr_stored_block;
+exports._tr_flush_block  = _tr_flush_block;
+exports._tr_tally = _tr_tally;
+exports._tr_align = _tr_align;
+
+},{"../utils/common":62}],74:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function ZStream() {
+  /* next input byte */
+  this.input = null; // JS specific, because we have no pointers
+  this.next_in = 0;
+  /* number of bytes available at input */
+  this.avail_in = 0;
+  /* total number of input bytes read so far */
+  this.total_in = 0;
+  /* next output byte should be put there */
+  this.output = null; // JS specific, because we have no pointers
+  this.next_out = 0;
+  /* remaining free space at output */
+  this.avail_out = 0;
+  /* total number of bytes output so far */
+  this.total_out = 0;
+  /* last error message, NULL if no error */
+  this.msg = ''/*Z_NULL*/;
+  /* not visible by applications */
+  this.state = null;
+  /* best guess about the data type: binary or text */
+  this.data_type = 2/*Z_UNKNOWN*/;
+  /* adler32 value of the uncompressed data */
+  this.adler = 0;
+}
+
+module.exports = ZStream;
+
+},{}]},{},[10])(10)
+});
\ No newline at end of file
diff --git a/apidocs/stable/jquery/jszip/dist/jszip.min.js b/apidocs/stable/jquery/jszip/dist/jszip.min.js
new file mode 100644
index 0000000..b918873
--- /dev/null
+++ b/apidocs/stable/jquery/jszip/dist/jszip.min.js
@@ -0,0 +1,15 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./utils"),e=a("./support"),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";c.encode=function(a){for(var b,c,e,g,h,i,j,k=[],l=0,m=a.length,n=m,o="string"!==d.getTypeOf(a);l<a.length;)n=m-l,o?(b=a[l++],c=l<m?a[l++]:0,e=l<m?a[l++]:0):(b=a.charCodeAt(l++),c=l<m?a.charCodeAt(l++):0,e=l<m?a.charCodeAt(l++):0),g=b>>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},c.decode=function(a){var b,c,d,g,h,i,j,k=0,l=0,m="data:";if(a.substr(0,m.length)===m)throw new Error("Invalid base64 input, it looks like a data url.");a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");var n=3*a.length/4;if(a.charAt(a.length-1)===f.charAt(64)&&n--,a.charAt(a.length-2)===f.charAt(64)&&n--,n%1!==0)throw new Error("Invalid base64 input, bad content length.");var o;for(o=e.uint8array?new Uint8Array(0|n):new Array(0|n);k<a.length;)g=f.indexOf(a.charAt(k++)),h=f.indexOf(a.charAt(k++)),i=f.indexOf(a.charAt(k++)),j=f.indexOf(a.charAt(k++)),b=g<<2|h>>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,o[l++]=b,64!==i&&(o[l++]=c),64!==j&&(o[l++]=d);return o}},{"./support":30,"./utils":32}],2:[function(a,b,c){"use strict";function d(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}var e=a("./external"),f=a("./stream/DataWorker"),g=a("./stream/DataLengthProbe"),h=a("./stream/Crc32Probe"),g=a("./stream/DataLengthProbe");d.prototype={getContentWorker:function(){var a=new f(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new f(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(a,b,c){return a.pipe(new h).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},b.exports=d},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(a,b,c){"use strict";var d=a("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(a){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},c.DEFLATE=a("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b[g])];return a^-1}function f(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b.charCodeAt(g))];return a^-1}var g=a("./utils"),h=d();b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var c="string"!==g.getTypeOf(a);return c?e(0|b,a,a.length,0):f(0|b,a,a.length,0)}},{"./utils":32}],5:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(a,b,c){"use strict";var d=null;d="undefined"!=typeof Promise?Promise:a("lie"),b.exports={Promise:d}},{lie:58}],7:[function(a,b,c){"use strict";function d(a,b){h.call(this,"FlateWorker/"+a),this._pako=null,this._pakoAction=a,this._pakoOptions=b,this.meta={}}var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=a("pako"),g=a("./utils"),h=a("./stream/GenericWorker"),i=e?"uint8array":"array";c.magic="\b\0",g.inherits(d,h),d.prototype.processChunk=function(a){this.meta=a.meta,null===this._pako&&this._createPako(),this._pako.push(g.transformTo(i,a.data),!1)},d.prototype.flush=function(){h.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},d.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},d.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var a=this;this._pako.onData=function(b){a.push({data:b,meta:a.meta})}},c.compressWorker=function(a){return new d("Deflate",a)},c.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:59}],8:[function(a,b,c){"use strict";function d(a,b,c,d){f.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var e=a("../utils"),f=a("../stream/GenericWorker"),g=a("../utf8"),h=a("../crc32"),i=a("../signature"),j=function(a,b){var c,d="";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},k=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},l=function(a,b){return 63&(a||0)},m=function(a,b,c,d,f,m){var n,o,p=a.file,q=a.compression,r=m!==g.utf8encode,s=e.transformTo("string",m(p.name)),t=e.transformTo("string",g.utf8encode(p.name)),u=p.comment,v=e.transformTo("string",m(u)),w=e.transformTo("string",g.utf8encode(u)),x=t.length!==p.name.length,y=w.length!==u.length,z="",A="",B="",C=p.dir,D=p.date,E={crc32:0,compressedSize:0,uncompressedSize:0};b&&!c||(E.crc32=a.crc32,E.compressedSize=a.compressedSize,E.uncompressedSize=a.uncompressedSize);var F=0;b&&(F|=8),r||!x&&!y||(F|=2048);var G=0,H=0;C&&(G|=16),"UNIX"===f?(H=798,G|=k(p.unixPermissions,C)):(H=20,G|=l(p.dosPermissions,C)),n=D.getUTCHours(),n<<=6,n|=D.getUTCMinutes(),n<<=5,n|=D.getUTCSeconds()/2,o=D.getUTCFullYear()-1980,o<<=4,o|=D.getUTCMonth()+1,o<<=5,o|=D.getUTCDate(),x&&(A=j(1,1)+j(h(s),4)+t,z+="up"+j(A.length,2)+A),y&&(B=j(1,1)+j(h(v),4)+w,z+="uc"+j(B.length,2)+B);var I="";I+="\n\0",I+=j(F,2),I+=q.magic,I+=j(n,2),I+=j(o,2),I+=j(E.crc32,4),I+=j(E.compressedSize,4),I+=j(E.uncompressedSize,4),I+=j(s.length,2),I+=j(z.length,2);var J=i.LOCAL_FILE_HEADER+I+s+z,K=i.CENTRAL_FILE_HEADER+j(H,2)+I+j(v.length,2)+"\0\0\0\0"+j(G,4)+j(d,4)+s+z+v;return{fileRecord:J,dirRecord:K}},n=function(a,b,c,d,f){var g="",h=e.transformTo("string",f(d));return g=i.CENTRAL_DIRECTORY_END+"\0\0\0\0"+j(a,2)+j(a,2)+j(b,4)+j(c,4)+j(h.length,2)+h},o=function(a){var b="";return b=i.DATA_DESCRIPTOR+j(a.crc32,4)+j(a.compressedSize,4)+j(a.uncompressedSize,4)};e.inherits(d,f),d.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,f.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},d.prototype.openedSource=function(a){this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name;var b=this.streamFiles&&!a.file.dir;if(b){var c=m(a,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(a){this.accumulate=!1;var b=this.streamFiles&&!a.file.dir,c=m(a,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),b)this.push({data:o(a),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b<this.dirRecords.length;b++)this.push({data:this.dirRecords[b],meta:{percent:100}});var c=this.bytesWritten-a,d=n(this.dirRecords.length,c,a,this.zipComment,this.encodeFileName);this.push({data:d,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(a){this._sources.push(a);var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.closedSource(b.previous.streamInfo),b._sources.length?b.prepareNextSource():b.end()}),a.on("error",function(a){b.error(a)}),this},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(a){var b=this._sources;if(!f.prototype.error.call(this,a))return!1;for(var c=0;c<b.length;c++)try{b[c].error(a)}catch(a){}return!0},d.prototype.lock=function(){f.prototype.lock.call(this);for(var a=this._sources,b=0;b<a.length;b++)a[b].lock()},b.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(a,b,c){"use strict";var d=a("../compressions"),e=a("./ZipFileWorker"),f=function(a,b){var c=a||b,e=d[c];if(!e)throw new Error(c+" is not a valid compression method !");return e};c.generateWorker=function(a,b,c){var d=new e(b.streamFiles,c,b.platform,b.encodeFileName),g=0;try{a.forEach(function(a,c){g++;var e=f(c.options.compression,b.compression),h=c.options.compressionOptions||b.compressionOptions||{},i=c.dir,j=c.date;c._compressWorker(e,h).withStreamInfo("file",{name:a,dir:i,date:j,comment:c.comment||"",unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions}).pipe(d)}),d.entriesCount=g}catch(h){d.error(h)}return d}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(a,b,c){"use strict";function d(){if(!(this instanceof d))return new d;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={},this.comment=null,this.root="",this.clone=function(){var a=new d;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a}}d.prototype=a("./object"),d.prototype.loadAsync=a("./load"),d.support=a("./support"),d.defaults=a("./defaults"),d.version="3.1.5",d.loadAsync=function(a,b){return(new d).loadAsync(a,b)},d.external=a("./external"),b.exports=d},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(a,b,c){"use strict";function d(a){return new f.Promise(function(b,c){var d=a.decompressed.getContentWorker().pipe(new i);d.on("error",function(a){c(a)}).on("end",function(){d.streamInfo.crc32!==a.decompressed.crc32?c(new Error("Corrupted zip : CRC32 mismatch")):b()}).resume()})}var e=a("./utils"),f=a("./external"),g=a("./utf8"),e=a("./utils"),h=a("./zipEntries"),i=a("./stream/Crc32Probe"),j=a("./nodejsUtils");b.exports=function(a,b){var c=this;return b=e.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:g.utf8decode}),j.isNode&&j.isStream(a)?f.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):e.prepareContent("the loaded zip file",a,!0,b.optimizedBinaryString,b.base64).then(function(a){var c=new h(b);return c.load(a),c}).then(function(a){var c=[f.Promise.resolve(a)],e=a.files;if(b.checkCRC32)for(var g=0;g<e.length;g++)c.push(d(e[g]));return f.Promise.all(c)}).then(function(a){for(var d=a.shift(),e=d.files,f=0;f<e.length;f++){var g=e[f];c.file(g.fileNameStr,g.decompressed,{binary:!0,optimizedBinaryString:!0,date:g.date,dir:g.dir,comment:g.fileCommentStr.length?g.fileCommentStr:null,unixPermissions:g.unixPermissions,dosPermissions:g.dosPermissions,createFolders:b.createFolders})}return d.zipComment.length&&(c.comment=d.zipComment),c})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(a,b,c){"use strict";function d(a,b){f.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}var e=a("../utils"),f=a("../stream/GenericWorker");e.inherits(d,f),d.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},d.prototype.pause=function(){return!!f.prototype.pause.call(this)&&(this._stream.pause(),!0)},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},b.exports=d},{"../stream/GenericWorker":28,"../utils":32}],13:[function(a,b,c){"use strict";function d(a,b,c){e.call(this,b),this._helper=a;var d=this;a.on("data",function(a,b){d.push(a)||d._helper.pause(),c&&c(b)}).on("error",function(a){d.emit("error",a)}).on("end",function(){d.push(null)})}var e=a("readable-stream").Readable,f=a("../utils");f.inherits(d,e),d.prototype._read=function(){this._helper.resume()},b.exports=d},{"../utils":32,"readable-stream":16}],14:[function(a,b,c){"use strict";b.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(a,b){return new Buffer(a,b)},allocBuffer:function(a){return Buffer.alloc?Buffer.alloc(a):new Buffer(a)},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&"function"==typeof a.on&&"function"==typeof a.pause&&"function"==typeof a.resume}}},{}],15:[function(a,b,c){"use strict";function d(a){return"[object RegExp]"===Object.prototype.toString.call(a)}var e=a("./utf8"),f=a("./utils"),g=a("./stream/GenericWorker"),h=a("./stream/StreamHelper"),i=a("./defaults"),j=a("./compressedObject"),k=a("./zipObject"),l=a("./generate"),m=a("./nodejsUtils"),n=a("./nodejs/NodejsStreamInputAdapter"),o=function(a,b,c){var d,e=f.getTypeOf(b),h=f.extend(c||{},i);h.date=h.date||new Date,null!==h.compression&&(h.compression=h.compression.toUpperCase()),"string"==typeof h.unixPermissions&&(h.unixPermissions=parseInt(h.unixPermissions,8)),h.unixPermissions&&16384&h.unixPermissions&&(h.dir=!0),h.dosPermissions&&16&h.dosPermissions&&(h.dir=!0),h.dir&&(a=q(a)),h.createFolders&&(d=p(a))&&r.call(this,d,!0);var l="string"===e&&h.binary===!1&&h.base64===!1;c&&"undefined"!=typeof c.binary||(h.binary=!l);var o=b instanceof j&&0===b.uncompressedSize;(o||h.dir||!b||0===b.length)&&(h.base64=!1,h.binary=!0,b="",h.compression="STORE",e="string");var s=null;s=b instanceof j||b instanceof g?b:m.isNode&&m.isStream(b)?new n(a,b):f.prepareContent(a,b,h.binary,h.optimizedBinaryString,h.base64);var t=new k(a,s,h);this.files[a]=t},p=function(a){"/"===a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf("/");return b>0?a.substring(0,b):""},q=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},r=function(a,b){return b="undefined"!=typeof b?b:i.createFolders,a=q(a),this.files[a]||o.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},s={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],c=b.slice(this.root.length,b.length),c&&b.slice(0,this.root.length)===this.root&&a(c,d))},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1===arguments.length){if(d(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}var f=this.files[this.root+a];return f&&!f.dir?f:null}return a=this.root+a,o.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=r.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(a){var b,c={};try{if(c=f.extend(a||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:e.utf8encode}),c.type=c.type.toLowerCase(),c.compression=c.compression.toUpperCase(),"binarystring"===c.type&&(c.type="string"),!c.type)throw new Error("No output type specified.");f.checkSupport(c.type),"darwin"!==c.platform&&"freebsd"!==c.platform&&"linux"!==c.platform&&"sunos"!==c.platform||(c.platform="UNIX"),"win32"===c.platform&&(c.platform="DOS");var d=c.comment||this.comment||"";b=l.generateWorker(this,c,d)}catch(i){b=new g("error"),b.error(i)}return new h(b,c.type||"string",c.mimeType)},generateAsync:function(a,b){return this.generateInternalStream(a).accumulate(b)},generateNodeStream:function(a,b){return a=a||{},a.type||(a.type="nodebuffer"),this.generateInternalStream(a).toNodejsStream(b)}};b.exports=s},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(a,b,c){b.exports=a("stream")},{stream:void 0}],17:[function(a,b,c){"use strict";function d(a){e.call(this,a);for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data[this.zero+a]},d.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],18:[function(a,b,c){"use strict";function d(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}var e=a("../utils");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo("string",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readAndCheckSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},b.exports=d},{"../utils":32}],19:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./Uint8ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readAndCheckSignature=function(a){var b=this.readData(4);return a===b},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],21:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./ArrayReader":17}],22:[function(a,b,c){"use strict";var d=a("../utils"),e=a("../support"),f=a("./ArrayReader"),g=a("./StringReader"),h=a("./NodeBufferReader"),i=a("./Uint8ArrayReader");b.exports=function(a){var b=d.getTypeOf(a);return d.checkSupport(b),"string"!==b||e.uint8array?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],24:[function(a,b,c){"use strict";function d(a){e.call(this,"ConvertWorker to "+a),this.destType=a}var e=a("./GenericWorker"),f=a("../utils");f.inherits(d,e),d.prototype.processChunk=function(a){this.push({data:f.transformTo(this.destType,a.data),meta:a.meta})},b.exports=d},{"../utils":32,"./GenericWorker":28}],25:[function(a,b,c){"use strict";function d(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var e=a("./GenericWorker"),f=a("../crc32"),g=a("../utils");g.inherits(d,e),d.prototype.processChunk=function(a){this.streamInfo.crc32=f(a.data,this.streamInfo.crc32||0),this.push(a)},b.exports=d},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(a,b,c){"use strict";function d(a){f.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}var e=a("../utils"),f=a("./GenericWorker");e.inherits(d,f),d.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}f.prototype.processChunk.call(this,a)},b.exports=d},{"../utils":32,"./GenericWorker":28}],27:[function(a,b,c){"use strict";function d(a){f.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=e.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}var e=a("../utils"),f=a("./GenericWorker"),g=16384;e.inherits(d,f),d.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},d.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},d.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=g,b=null,c=Math.min(this.max,this.index+a);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,c);break;case"uint8array":b=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":b=this.data.slice(this.index,c)}return this.index=c,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},b.exports=d},{"../utils":32,"./GenericWorker":28}],28:[function(a,b,c){"use strict";function d(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},b.exports=d},{}],29:[function(a,b,c){"use strict";function d(a,b,c){switch(a){case"blob":return h.newBlob(h.transformTo("arraybuffer",b),c);case"base64":return k.encode(b);default:return h.transformTo(a,b)}}function e(a,b){var c,d=0,e=null,f=0;for(c=0;c<b.length;c++)f+=b[c].length;switch(a){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(e=new Uint8Array(f),c=0;c<b.length;c++)e.set(b[c],d),d+=b[c].length;return e;case"nodebuffer":return Buffer.concat(b);default:throw new Error("concat : unsupported type '"+a+"'")}}function f(a,b){return new m.Promise(function(c,f){var g=[],h=a._internalType,i=a._outputType,j=a._mimeType;a.on("data",function(a,c){g.push(a),b&&b(c)}).on("error",function(a){g=[],f(a)}).on("end",function(){try{var a=d(i,e(h,g),j);c(a)}catch(b){f(b)}g=[]}).resume()})}function g(a,b,c){var d=b;switch(b){case"blob":case"arraybuffer":d="uint8array";break;case"base64":d="string"}try{this._internalType=d,this._outputType=b,this._mimeType=c,h.checkSupport(d),this._worker=a.pipe(new i(d)),a.lock()}catch(e){this._worker=new j("error"),this._worker.error(e)}}var h=a("../utils"),i=a("./ConvertWorker"),j=a("./GenericWorker"),k=a("../base64"),l=a("../support"),m=a("../external"),n=null;if(l.nodestream)try{n=a("../nodejs/NodejsStreamOutputAdapter")}catch(o){}g.prototype={accumulate:function(a){return f(this,a)},on:function(a,b){var c=this;return"data"===a?this._worker.on(a,function(a){b.call(c,a.data,a.meta)}):this._worker.on(a,function(){h.delay(b,arguments,c)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(a){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new n(this,{objectMode:"nodebuffer"!==this._outputType},a)}},b.exports=g},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(a,b,c){"use strict";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c.nodebuffer="undefined"!=typeof Buffer,c.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)c.blob=!1;else{var d=new ArrayBuffer(0);try{c.blob=0===new Blob([d],{type:"application/zip"}).size}catch(e){try{var f=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,g=new f;g.append(d),c.blob=0===g.getBlob("application/zip").size}catch(e){c.blob=!1}}}try{c.nodestream=!!a("readable-stream").Readable}catch(e){c.nodestream=!1}},{"readable-stream":16}],31:[function(a,b,c){"use strict";function d(){i.call(this,"utf-8 decode"),this.leftOver=null}function e(){i.call(this,"utf-8 encode")}for(var f=a("./utils"),g=a("./support"),h=a("./nodejsUtils"),i=a("./stream/GenericWorker"),j=new Array(256),k=0;k<256;k++)j[k]=k>=252?6:k>=248?5:k>=240?4:k>=224?3:k>=192?2:1;j[254]=j[254]=1;var l=function(a){var b,c,d,e,f,h=a.length,i=0;for(e=0;e<h;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=g.uint8array?new Uint8Array(i):new Array(i),f=0,e=0;f<i;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),c<128?b[f++]=c:c<2048?(b[f++]=192|c>>>6,b[f++]=128|63&c):c<65536?(b[f++]=224|c>>>12,b[f++]=128|c>>>6&63,b[f++]=128|63&c):(b[f++]=240|c>>>18,b[f++]=128|c>>>12&63,b[f++]=128|c>>>6&63,b[f++]=128|63&c);return b},m=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+j[a[c]]>b?c:b},n=function(a){var b,c,d,e,g=a.length,h=new Array(2*g);for(c=0,b=0;b<g;)if(d=a[b++],d<128)h[c++]=d;else if(e=j[d],e>4)h[c++]=65533,b+=e-1;else{for(d&=2===e?31:3===e?15:7;e>1&&b<g;)d=d<<6|63&a[b++],e--;e>1?h[c++]=65533:d<65536?h[c++]=d:(d-=65536,h[c++]=55296|d>>10&1023,h[c++]=56320|1023&d)}return h.length!==c&&(h.subarray?h=h.subarray(0,c):h.length=c),f.applyFromCharCode(h)};c.utf8encode=function(a){return g.nodebuffer?h.newBufferFrom(a,"utf-8"):l(a)},c.utf8decode=function(a){return g.nodebuffer?f.transformTo("nodebuffer",a).toString("utf-8"):(a=f.transformTo(g.uint8array?"uint8array":"array",a),n(a))},f.inherits(d,i),d.prototype.processChunk=function(a){var b=f.transformTo(g.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(g.uint8array){var d=b;b=new Uint8Array(d.length+this.leftOver.length),b.set(this.leftOver,0),b.set(d,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var e=m(b),h=b;e!==b.length&&(g.uint8array?(h=b.subarray(0,e),this.leftOver=b.subarray(e,b.length)):(h=b.slice(0,e),this.leftOver=b.slice(e,b.length))),this.push({data:c.utf8decode(h),meta:a.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=d,f.inherits(e,i),e.prototype.processChunk=function(a){this.push({data:c.utf8encode(a.data),meta:a.meta})},c.Utf8EncodeWorker=e},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(a,b,c){"use strict";function d(a){var b=null;return b=i.uint8array?new Uint8Array(a.length):new Array(a.length),f(a,b)}function e(a){return a}function f(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function g(a){var b=65536,d=c.getTypeOf(a),e=!0;if("uint8array"===d?e=n.applyCanBeUsed.uint8array:"nodebuffer"===d&&(e=n.applyCanBeUsed.nodebuffer),e)for(;b>1;)try{return n.stringifyByChunk(a,d,b)}catch(f){b=Math.floor(b/2)}return n.stringifyByChar(a)}function h(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];
+return b}var i=a("./support"),j=a("./base64"),k=a("./nodejsUtils"),l=a("core-js/library/fn/set-immediate"),m=a("./external");c.newBlob=function(a,b){c.checkSupport("blob");try{return new Blob([a],{type:b})}catch(d){try{var e=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,f=new e;return f.append(a),f.getBlob(b)}catch(d){throw new Error("Bug : can't construct the Blob.")}}};var n={stringifyByChunk:function(a,b,c){var d=[],e=0,f=a.length;if(f<=c)return String.fromCharCode.apply(null,a);for(;e<f;)"array"===b||"nodebuffer"===b?d.push(String.fromCharCode.apply(null,a.slice(e,Math.min(e+c,f)))):d.push(String.fromCharCode.apply(null,a.subarray(e,Math.min(e+c,f)))),e+=c;return d.join("")},stringifyByChar:function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return b},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(a){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,k.allocBuffer(1)).length}catch(a){return!1}}()}};c.applyFromCharCode=g;var o={};o.string={string:e,array:function(a){return f(a,new Array(a.length))},arraybuffer:function(a){return o.string.uint8array(a).buffer},uint8array:function(a){return f(a,new Uint8Array(a.length))},nodebuffer:function(a){return f(a,k.allocBuffer(a.length))}},o.array={string:g,array:e,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(a)}},o.arraybuffer={string:function(a){return g(new Uint8Array(a))},array:function(a){return h(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:e,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(new Uint8Array(a))}},o.uint8array={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:e,nodebuffer:function(a){return k.newBufferFrom(a)}},o.nodebuffer={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return o.nodebuffer.uint8array(a).buffer},uint8array:function(a){return h(a,new Uint8Array(a.length))},nodebuffer:e},c.transformTo=function(a,b){if(b||(b=""),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=o[d][a](b);return e},c.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":i.nodebuffer&&k.isBuffer(a)?"nodebuffer":i.uint8array&&a instanceof Uint8Array?"uint8array":i.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":void 0},c.checkSupport=function(a){var b=i[a.toLowerCase()];if(!b)throw new Error(a+" is not supported by this platform")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d="";for(c=0;c<(a||"").length;c++)b=a.charCodeAt(c),d+="\\x"+(b<16?"0":"")+b.toString(16).toUpperCase();return d},c.delay=function(a,b,c){l(function(){a.apply(c||null,b||[])})},c.inherits=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c},c.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&"undefined"==typeof c[b]&&(c[b]=arguments[a][b]);return c},c.prepareContent=function(a,b,e,f,g){var h=m.Promise.resolve(b).then(function(a){var b=i.blob&&(a instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(a))!==-1);return b&&"undefined"!=typeof FileReader?new m.Promise(function(b,c){var d=new FileReader;d.onload=function(a){b(a.target.result)},d.onerror=function(a){c(a.target.error)},d.readAsArrayBuffer(a)}):a});return h.then(function(b){var h=c.getTypeOf(b);return h?("arraybuffer"===h?b=c.transformTo("uint8array",b):"string"===h&&(g?b=j.decode(b):e&&f!==!0&&(b=d(b))),b):m.Promise.reject(new Error("Can't read the data of '"+a+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(a,b,c){"use strict";function d(a){this.files=[],this.loadOptions=a}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./signature"),h=a("./zipEntry"),i=(a("./utf8"),a("./support"));d.prototype={checkSignature:function(a){if(!this.reader.readAndCheckSignature(a)){this.reader.index-=4;var b=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+f.pretty(b)+", expected "+f.pretty(a)+")")}},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4),e=d===b;return this.reader.setIndex(c),e},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=i.uint8array?"uint8array":"array",c=f.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;e<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readData(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(g.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(g.CENTRAL_FILE_HEADER);)a=new h({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(g.CENTRAL_DIRECTORY_END);if(a<0){var b=!this.isSignature(0,g.LOCAL_FILE_HEADER);throw b?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(a);var c=a;if(this.checkSignature(g.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===f.MAX_VALUE_16BITS||this.diskWithCentralDirStart===f.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===f.MAX_VALUE_16BITS||this.centralDirRecords===f.MAX_VALUE_16BITS||this.centralDirSize===f.MAX_VALUE_32BITS||this.centralDirOffset===f.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),a<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(a),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,g.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,g.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error("Corrupted zip: missing "+Math.abs(e)+" bytes.")},prepareReader:function(a){this.reader=e(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(a,b,c){"use strict";function d(a,b){this.options=a,this.loadOptions=b}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./compressedObject"),h=a("./crc32"),i=a("./utf8"),j=a("./compressions"),k=a("./support"),l=0,m=3,n=function(a){for(var b in j)if(j.hasOwnProperty(b)&&j[b].magic===a)return j[b];return null};d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(b=n(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new g(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===l&&(this.dosPermissions=63&this.externalFileAttributes),a===m&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.index<e;)b=a.readInt(2),c=a.readInt(2),d=a.readData(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){var a=k.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=i.utf8decode(this.fileName),this.fileCommentStr=i.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=f.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var e=f.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(e)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileName)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileComment)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null}},b.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(a,b,c){"use strict";var d=a("./stream/StreamHelper"),e=a("./stream/DataWorker"),f=a("./utf8"),g=a("./compressedObject"),h=a("./stream/GenericWorker"),i=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this._dataBinary=c.binary,this.options={compression:c.compression,compressionOptions:c.compressionOptions}};i.prototype={internalStream:function(a){var b=null,c="string";try{if(!a)throw new Error("No output type specified.");c=a.toLowerCase();var e="string"===c||"text"===c;"binarystring"!==c&&"text"!==c||(c="string"),b=this._decompressWorker();var g=!this._dataBinary;g&&!e&&(b=b.pipe(new f.Utf8EncodeWorker)),!g&&e&&(b=b.pipe(new f.Utf8DecodeWorker))}catch(i){b=new h("error"),b.error(i)}return new d(b,c,"")},async:function(a,b){return this.internalStream(a).accumulate(b)},nodeStream:function(a,b){return this.internalStream(a||"nodebuffer").toNodejsStream(b)},_compressWorker:function(a,b){if(this._data instanceof g&&this._data.compression.magic===a.magic)return this._data.getCompressedWorker();var c=this._decompressWorker();return this._dataBinary||(c=c.pipe(new f.Utf8EncodeWorker)),g.createWorkerFrom(c,a,b)},_decompressWorker:function(){return this._data instanceof g?this._data.getContentWorker():this._data instanceof h?this._data:new e(this._data)}};for(var j=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],k=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<j.length;l++)i.prototype[j[l]]=k;b.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(a,b,c){a("../modules/web.immediate"),b.exports=a("../modules/_core").setImmediate},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(a,b,c){b.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},{}],38:[function(a,b,c){var d=a("./_is-object");b.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},{"./_is-object":51}],39:[function(a,b,c){var d={}.toString;b.exports=function(a){return d.call(a).slice(8,-1)}},{}],40:[function(a,b,c){var d=b.exports={version:"2.3.0"};"number"==typeof __e&&(__e=d)},{}],41:[function(a,b,c){var d=a("./_a-function");b.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},{"./_a-function":37}],42:[function(a,b,c){b.exports=!a("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":45}],43:[function(a,b,c){var d=a("./_is-object"),e=a("./_global").document,f=d(e)&&d(e.createElement);b.exports=function(a){return f?e.createElement(a):{}}},{"./_global":46,"./_is-object":51}],44:[function(a,b,c){var d=a("./_global"),e=a("./_core"),f=a("./_ctx"),g=a("./_hide"),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];n&&(c=b);for(j in c)k=!m&&u&&void 0!==u[j],k&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,b.exports=i},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(a,b,c){b.exports=function(a){try{return!!a()}catch(b){return!0}}},{}],46:[function(a,b,c){var d=b.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=d)},{}],47:[function(a,b,c){var d=a("./_object-dp"),e=a("./_property-desc");b.exports=a("./_descriptors")?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(a,b,c){b.exports=a("./_global").document&&document.documentElement},{"./_global":46}],49:[function(a,b,c){b.exports=!a("./_descriptors")&&!a("./_fails")(function(){return 7!=Object.defineProperty(a("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(a,b,c){b.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},{}],51:[function(a,b,c){b.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},{}],52:[function(a,b,c){var d=a("./_an-object"),e=a("./_ie8-dom-define"),f=a("./_to-primitive"),g=Object.defineProperty;c.f=a("./_descriptors")?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(a,b,c){b.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},{}],54:[function(a,b,c){var d,e,f,g=a("./_ctx"),h=a("./_invoke"),i=a("./_html"),j=a("./_dom-create"),k=a("./_global"),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==a("./_cof")(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),b.exports={set:m,clear:n}},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(a,b,c){var d=a("./_is-object");b.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":51}],56:[function(a,b,c){var d=a("./_export"),e=a("./_task");d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},{"./_export":44,"./_task":54}],57:[function(a,b,c){(function(a){"use strict";function c(){k=!0;for(var a,b,c=l.length;c;){for(b=l,l=[],a=-1;++a<c;)b[a]();c=l.length}k=!1}function d(a){1!==l.push(a)||k||e()}var e,f=a.MutationObserver||a.WebKitMutationObserver;if(f){var g=0,h=new f(c),i=a.document.createTextNode("");h.observe(i,{characterData:!0}),e=function(){i.data=g=++g%2}}else if(a.setImmediate||"undefined"==typeof a.MessageChannel)e="document"in a&&"onreadystatechange"in a.document.createElement("script")?function(){var b=a.document.createElement("script");b.onreadystatechange=function(){c(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},a.document.documentElement.appendChild(b)}:function(){setTimeout(c,0)};else{var j=new a.MessageChannel;j.port1.onmessage=c,e=function(){j.port2.postMessage(0)}}var k,l=[];b.exports=d}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],58:[function(a,b,c){"use strict";function d(){}function e(a){if("function"!=typeof a)throw new TypeError("resolver must be a function");this.state=s,this.queue=[],this.outcome=void 0,a!==d&&i(this,a)}function f(a,b,c){this.promise=a,"function"==typeof b&&(this.onFulfilled=b,this.callFulfilled=this.otherCallFulfilled),"function"==typeof c&&(this.onRejected=c,this.callRejected=this.otherCallRejected)}function g(a,b,c){o(function(){var d;try{d=b(c)}catch(e){return p.reject(a,e)}d===a?p.reject(a,new TypeError("Cannot resolve promise with itself")):p.resolve(a,d)})}function h(a){var b=a&&a.then;if(a&&("object"==typeof a||"function"==typeof a)&&"function"==typeof b)return function(){b.apply(a,arguments)}}function i(a,b){function c(b){f||(f=!0,p.reject(a,b))}function d(b){f||(f=!0,p.resolve(a,b))}function e(){b(d,c)}var f=!1,g=j(e);"error"===g.status&&c(g.value)}function j(a,b){var c={};try{c.value=a(b),c.status="success"}catch(d){c.status="error",c.value=d}return c}function k(a){return a instanceof this?a:p.resolve(new this(d),a)}function l(a){var b=new this(d);return p.reject(b,a)}function m(a){function b(a,b){function d(a){g[b]=a,++h!==e||f||(f=!0,p.resolve(j,g))}c.resolve(a).then(d,function(a){f||(f=!0,p.reject(j,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=new Array(e),h=0,i=-1,j=new this(d);++i<e;)b(a[i],i);return j}function n(a){function b(a){c.resolve(a).then(function(a){f||(f=!0,p.resolve(h,a))},function(a){f||(f=!0,p.reject(h,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=-1,h=new this(d);++g<e;)b(a[g]);return h}var o=a("immediate"),p={},q=["REJECTED"],r=["FULFILLED"],s=["PENDING"];b.exports=e,e.prototype["catch"]=function(a){return this.then(null,a)},e.prototype.then=function(a,b){if("function"!=typeof a&&this.state===r||"function"!=typeof b&&this.state===q)return this;var c=new this.constructor(d);if(this.state!==s){var e=this.state===r?a:b;g(c,e,this.outcome)}else this.queue.push(new f(c,a,b));return c},f.prototype.callFulfilled=function(a){p.resolve(this.promise,a)},f.prototype.otherCallFulfilled=function(a){g(this.promise,this.onFulfilled,a)},f.prototype.callRejected=function(a){p.reject(this.promise,a)},f.prototype.otherCallRejected=function(a){g(this.promise,this.onRejected,a)},p.resolve=function(a,b){var c=j(h,b);if("error"===c.status)return p.reject(a,c.value);var d=c.value;if(d)i(a,d);else{a.state=r,a.outcome=b;for(var e=-1,f=a.queue.length;++e<f;)a.queue[e].callFulfilled(b)}return a},p.reject=function(a,b){a.state=q,a.outcome=b;for(var c=-1,d=a.queue.length;++c<d;)a.queue[c].callRejected(b);return a},e.resolve=k,e.reject=l,e.all=m,e.race=n},{immediate:57}],59:[function(a,b,c){"use strict";var d=a("./lib/utils/common").assign,e=a("./lib/deflate"),f=a("./lib/inflate"),g=a("./lib/zlib/constants"),h={};d(h,e,f,g),b.exports=h},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:""},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?j.string2buf(b.dictionary):"[object ArrayBuffer]"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a("./zlib/deflate"),i=a("./utils/common"),j=a("./utils/strings"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,"string"==typeof a?e.input=j.string2buf(a):"[object ArrayBuffer]"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||("string"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a("./zlib/inflate"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/constants"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=a("./zlib/gzheader"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,"string"==typeof a?m.input=i.binstring2buf(a):"[object ArrayBuffer]"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l="string"==typeof p?i.string2buf(p):"[object ArrayBuffer]"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||("string"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],63:[function(a,b,c){"use strict";function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;d<b;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;j<256;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new e.Buf8(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c<d;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;c<h;)if(f=a[c++],f<128)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c<h;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":62}],64:[function(a,b,c){"use strict";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0;
+}b.exports=d},{}],65:[function(a,b,c){"use strict";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],66:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],67:[function(a,b,c){"use strict";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ja-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ja)););}while(a.lookahead<la&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c)),a.match_length>=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ja-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===U||a.match_length===ja&&a.strstart-a.match_start>4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ja-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return ua}else if(a.match_available){if(d=F._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return ua}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=F._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a),a.lookahead<=ka&&b===J)return ua;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&e<f);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ja-1)/ja),i.window=new E.Buf8(2*i.w_size),i.head=new E.Buf16(i.hash_size),i.prev=new E.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new E.Buf8(i.pending_buf_size),i.d_buf=1*i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+ja-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--e);c.strstart=d,c.lookahead=ja-1,m(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=ja-1,c.match_available=0,a.next_in=i,a.input=j,a.avail_in=h,c.wrap=g,O}var D,E=a("../utils/common"),F=a("./trees"),G=a("./adler32"),H=a("./crc32"),I=a("./messages"),J=0,K=1,L=3,M=4,N=5,O=0,P=1,Q=-2,R=-3,S=-5,T=-1,U=1,V=2,W=3,X=4,Y=0,Z=2,$=8,_=9,aa=15,ba=8,ca=29,da=256,ea=da+1+ca,fa=30,ga=19,ha=2*ea+1,ia=15,ja=3,ka=258,la=ka+ja+1,ma=32,na=42,oa=69,pa=73,qa=91,ra=103,sa=113,ta=666,ua=1,va=2,wa=3,xa=4,ya=3;D=[new s(0,0,0,0,n),new s(4,4,8,4,o),new s(4,5,16,8,o),new s(4,6,32,32,o),new s(4,4,16,16,p),new s(8,16,32,32,p),new s(8,16,128,128,p),new s(8,32,128,256,p),new s(32,128,258,1024,p),new s(32,258,258,4096,p)],c.deflateInit=z,c.deflateInit2=y,c.deflateReset=w,c.deflateResetKeep=v,c.deflateSetHeader=x,c.deflate=A,c.deflateEnd=B,c.deflateSetDictionary=C,c.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(a,b,c){"use strict";function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}b.exports=d},{}],69:[function(a,b,c){"use strict";var d=30,e=12;b.exports=function(a,b){var c,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;c=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=c.dmax,l=c.wsize,m=c.whave,n=c.wnext,o=c.window,p=c.hold,q=c.bits,r=c.lencode,s=c.distcode,t=(1<<c.lenbits)-1,u=(1<<c.distbits)-1;a:do{q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){c.mode=e;break a}a.msg="invalid literal/length code",c.mode=d;break a}x=65535&v,w&=15,w&&(q<w&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",c.mode=d;break a}if(y=65535&v,w&=15,q<w&&(p+=B[f++]<<q,q+=8,q<w&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(n<w){if(z+=l+n-w,w-=n,w<x){x-=w;do C[h++]=o[z++];while(--w);if(z=0,n<x){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f<g&&h<j);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=f<g?5+(g-f):5-(f-g),a.avail_out=h<j?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],70:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new s.Buf8(f.wsize)),d>=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new s.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return G;c=a.state,c.mode===W&&(c.mode=X),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=D;a:for(;;)switch(c.mode){case L:if(0===c.wrap){c.mode=X;break}for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?U:W,m=0,n=0;break;case M:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==K){a.msg="unknown compression method",c.mode=ma;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=ma;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=ma;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=V;case V:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,F;a.adler=c.check=1,c.mode=W;case W:if(b===B||b===C)break a;case X:if(c.last){m>>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.ncode;){for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(sa<16)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?u(c.check,f,p,h-p):t(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=ma;break}m=0,n=0}c.mode=ka;case ka:if(c.wrap&&c.flags){for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=ma;break}m=0,n=0}c.mode=la;case la:xa=E;break a;case ma:xa=H;break a;case na:return I;case oa:default:return G}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<ma&&(c.mode<ja||b!==A))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=na,I):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?u(c.check,f,p,a.next_out-p):t(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===W?128:0)+(c.mode===ca||c.mode===Z?256:0),(0===o&&0===p||b===A)&&xa===D&&(xa=J),xa)}function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b.window=null),a.state=null,D}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.head=b,b.done=!1,D)):G}function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c.wrap&&c.mode!==V?G:c.mode===V&&(d=1,d=t(d,b,f,0),d!==c.check)?H:(e=l(a,b,f,f))?(c.mode=na,I):(c.havedict=1,D)):G}var q,r,s=a("../utils/common"),t=a("./adler32"),u=a("./crc32"),v=a("./inffast"),w=a("./inftrees"),x=0,y=1,z=2,A=4,B=5,C=6,D=0,E=1,F=2,G=-2,H=-3,I=-4,J=-5,K=8,L=1,M=2,N=3,O=4,P=5,Q=6,R=7,S=8,T=9,U=10,V=11,W=12,X=13,Y=14,Z=15,$=16,_=17,aa=18,ba=19,ca=20,da=21,ea=22,fa=23,ga=24,ha=25,ia=26,ja=27,ka=28,la=29,ma=30,na=31,oa=32,pa=852,qa=592,ra=15,sa=ra,ta=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateSetDictionary=p,c.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(a,b,c){"use strict";var d=a("../utils/common"),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;D<=e;D++)P[D]=0;for(E=0;E<o;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F<G&&0===P[F];F++);for(H<F&&(H=F),K=1,D=1;D<=e;D++)if(K<<=1,K-=P[D],K<0)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D<e;D++)Q[D+1]=Q[D]+P[D];for(E=0;E<o;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(;;){z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;I+J<G&&(K-=P[I+J],!(K<=0));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":62}],72:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],73:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi_buf),a.bi_buf=b>>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function j(a,b,c){i(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,
+c=a.heap_max+1;c<V;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka[d]=c,a=0;a<1<<ba[d];a++)ja[c++]=d;for(ja[c-1]=d,f=0,d=0;d<16;d++)for(la[d]=f,a=0;a<1<<ca[d];a++)ia[f++]=d;for(f>>=7;d<T;d++)for(la[d]=f<<7,a=0;a<1<<ca[d]-7;a++)ia[256+f++]=d;for(b=0;b<=W;b++)g[b]=0;for(a=0;a<=143;)ga[2*a+1]=8,a++,g[8]++;for(;a<=255;)ga[2*a+1]=9,a++,g[9]++;for(;a<=279;)ga[2*a+1]=7,a++,g[7]++;for(;a<=287;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;a<T;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a.dyn_dtree[2*b]=0;for(b=0;b<U;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&s(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!s(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],e=a.pending_buf[a.l_buf+k],k++,0===d?j(a,e,b):(f=ja[e],j(a,f+R+1,b),h=ba[f],0!==h&&(e-=ka[f],i(a,e,h)),d--,f=g(d),j(a,f,c),h=ca[f],0!==h&&(d-=la[f],i(a,d,h)));while(k<a.last_lit);j(a,Z,b)}function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=V,c=0;c<i;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=j<2?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):h<=10?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;d<=c;d++)if(e=g,g=b[2*(d+1)+1],!(++h<k&&e===g)){if(h<l){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):h<=10?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b<R;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":62}],74:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)});
\ No newline at end of file
diff --git a/apidocs/stable/member-search-index.js b/apidocs/stable/member-search-index.js
new file mode 100644
index 0000000..d56672e
--- /dev/null
+++ b/apidocs/stable/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"org.apache.tamaya","c":"Configuration","l":"adapt(Function<Configuration, T>)","url":"adapt(java.util.function.Function)"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"addChangeListener(BiConsumer<Set<String>, PropertySource>)","url":"addChangeListener(java.util.function.BiConsumer)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"addChangeListener(BiConsumer<Set<String>, PropertySource>)","url":"addChangeListener(java.util.function.BiConsumer)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"addChangeListener(BiConsumer<Set<String>, PropertySource>)","url":"addChangeListener(java.util.function.BiConsumer)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationBuilder","l":"addCorePropertyConverters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addCorePropertyConverters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addCorePropertyResources(List<PropertySource>)","url":"addCorePropertyResources(java.util.List)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addDefaultPropertyConverters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addDefaultPropertyConverters()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addDefaultPropertyFilters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addDefaultPropertyFilters()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addDefaultPropertySources()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addDefaultPropertySources()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"addList()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"addList(String)","url":"addList(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"addObject()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"addObject(String)","url":"addObject(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addPropertyConverters(TypeLiteral<T>, Collection<PropertyConverter<T>>)","url":"addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addPropertyConverters(TypeLiteral<T>, Collection<PropertyConverter<T>>)","url":"addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addPropertyConverters(TypeLiteral<T>, PropertyConverter<T>...)","url":"addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addPropertyFilters(Collection<PropertyFilter>)","url":"addPropertyFilters(java.util.Collection)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addPropertyFilters(Collection<PropertyFilter>)","url":"addPropertyFilters(java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addPropertyFilters(PropertyFilter...)","url":"addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addPropertySources(Collection<PropertySource>)","url":"addPropertySources(java.util.Collection)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"addPropertySources(Collection<PropertySource>)","url":"addPropertySources(java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"addPropertySources(PropertySource...)","url":"addPropertySources(org.apache.tamaya.spi.PropertySource...)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"addPropertyValue(PropertyValue)","url":"addPropertyValue(org.apache.tamaya.spi.PropertyValue)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"addSupportedFormats(Class<?>, String...)","url":"addSupportedFormats(java.lang.Class,java.lang.String...)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"addSupportedFormats(Class<?>, String...)","url":"addSupportedFormats(java.lang.Class,java.lang.String...)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"addValue(String)","url":"addValue(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"addValues(String...)","url":"addValues(java.lang.String...)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyFiltering","l":"applyFilter(PropertyValue, ConfigurationContext)","url":"applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyFiltering","l":"applyFilters(List<PropertyValue>, ConfigurationContext)","url":"applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyFiltering","l":"applyFilters(Map<String, PropertyValue>, ConfigurationContext)","url":"applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue.ValueType","l":"ARRAY"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"BasePropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"BasePropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"BasePropertySource(int)","url":"%3Cinit%3E(int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"BasePropertySource(int)","url":"%3Cinit%3E(int)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"BasePropertySource(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"BasePropertySource(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"BasePropertySource(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"BasePropertySource(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigDecimalConverter","l":"BigDecimalConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigIntegerConverter","l":"BigIntegerConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"BooleanConverter","l":"BooleanConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationBuilder","l":"build()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"build()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"build()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"build()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"build()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider.Builder","l":"build()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"build()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"BuildablePropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider","l":"BuildablePropertySourceProvider()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"builder()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider","l":"builder()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"Builder(Configuration, String, TypeLiteral<?>)","url":"%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.String,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"Builder(String, TypeLiteral<?>)","url":"%3Cinit%3E(java.lang.String,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"Builder(TypeLiteral<?>)","url":"%3Cinit%3E(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"built"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceLoader","l":"bundleChanged(BundleEvent)","url":"bundleChanged(org.osgi.framework.BundleEvent)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"but()"},{"p":"org.apache.tamaya.core.internal.converters","c":"ByteConverter","l":"ByteConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"cancelSchedule()"},{"p":"org.apache.tamaya.core.internal.converters","c":"CharConverter","l":"CharConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"checkImmutable()"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"checkPriorityAnnotation(ClassLoader)","url":"checkPriorityAnnotation(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ClassConverter","l":"ClassConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"CLIPropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"CLIPropertySource(int, String...)","url":"%3Cinit%3E(int,java.lang.String...)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"CLIPropertySource(String...)","url":"%3Cinit%3E(java.lang.String...)"},{"p":"org.apache.tamaya.spisupport","c":"PriorityServiceComparator","l":"compare(Object, Object)","url":"compare(java.lang.Object,java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyFilterComparator","l":"compare(PropertyFilter, PropertyFilter)","url":"compare(org.apache.tamaya.spi.PropertyFilter,org.apache.tamaya.spi.PropertyFilter)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceComparator","l":"compare(PropertySource, PropertySource)","url":"compare(org.apache.tamaya.spi.PropertySource,org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"SimplePropertySource","l":"CONFIG_PROPERTIES_LOCATION"},{"p":"org.apache.tamaya","c":"ConfigException","l":"ConfigException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"org.apache.tamaya","c":"ConfigException","l":"ConfigException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"ConversionContext(ConversionContext.Builder)","url":"%3Cinit%3E(org.apache.tamaya.spi.ConversionContext.Builder)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigDecimalConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigIntegerConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BooleanConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ByteConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"CharConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ClassConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"CurrencyConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"DoubleConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"DurationConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"FileConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"FloatConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"InstantConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"IntegerConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateTimeConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalTimeConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LongConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"MonthDayConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"NumberConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetDateTimeConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetTimeConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OptionalConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"PathConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ShortConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"SupplierConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"URIConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"URLConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearMonthConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.spi","c":"PropertyConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.spisupport","c":"EnumConverter","l":"convert(String, ConversionContext)","url":"convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"convertValue(String, List<PropertyValue>, TypeLiteral<T>)","url":"convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfiguration","l":"CoreConfiguration(ConfigurationContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationBuilder","l":"CoreConfigurationBuilder()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationBuilder","l":"CoreConfigurationBuilder(Configuration)","url":"%3Cinit%3E(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationBuilder","l":"CoreConfigurationBuilder(ConfigurationContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"CoreConfigurationProvider()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"create(Class<T>, Supplier<T>)","url":"create(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"create(Class<T>, Supplier<T>)","url":"create(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"create(Class<T>, Supplier<T>)","url":"create(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"create(Class<T>)","url":"create(java.lang.Class)"},{"p":"org.apache.tamaya","c":"ConfigurationProvider","l":"createConfiguration(ConfigurationContext)","url":"createConfiguration(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"createConfiguration(ConfigurationContext)","url":"createConfiguration(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"createConfiguration(ConfigurationContext)","url":"createConfiguration(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya","c":"Configuration","l":"createConfigurationBuilder()"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"createDefaultPropertyConverter(TypeLiteral<T>)","url":"createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"createList()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"createList(String)","url":"createList(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"createObject()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"createObject(String)","url":"createObject(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"createValue(String, String)","url":"createValue(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.core.internal.converters","c":"CurrencyConverter","l":"CurrencyConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya","c":"Configuration","l":"current()"},{"p":"org.apache.tamaya","c":"Configuration","l":"current(ClassLoader)","url":"current(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"decreasePriority(PropertySource)","url":"decreasePriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"decreasePriority(PropertySource)","url":"decreasePriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"deepClone()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"deepClone()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"deepClone()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"DEFAULT_ORDINAL"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"DEFAULT_ORDINAL"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"DEFAULT_SIMPLE_PROPERTIES_FILE_NAME"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"DEFAULT_XML_PROPERTIES_FILE_NAME"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"DefaultConfiguration(ConfigurationContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"DefaultConfigurationBuilder()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"DefaultConfigurationBuilder(Configuration)","url":"%3Cinit%3E(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"DefaultConfigurationBuilder(ConfigurationContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"DefaultConfigurationContext(DefaultConfigurationBuilder)","url":"%3Cinit%3E(org.apache.tamaya.spisupport.DefaultConfigurationBuilder)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"DefaultConfigurationContext(ServiceContext, List<PropertyFilter>, List<PropertySource>, Map<TypeLiteral<?>, List<PropertyConverter<?>>>, MetadataProvider)","url":"%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"DefaultConfigurationSnapshot(Configuration, Iterable<String>)","url":"%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.Iterable)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"DefaultConfigurationSnapshot(Configuration)","url":"%3Cinit%3E(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigValueEvaluator","l":"DefaultConfigValueEvaluator()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"DefaultMetaDataProvider()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"DefaultPropertySourceSnapshot(PropertySource, Iterable<String>)","url":"%3Cinit%3E(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"DefaultPropertySourceSnapshot(PropertySource)","url":"%3Cinit%3E(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"DefaultServiceContext()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"DoubleConverter","l":"DoubleConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"DurationConverter","l":"DurationConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya","c":"Configuration","l":"EMPTY"},{"p":"org.apache.tamaya","c":"ConfigurationSnapshot","l":"EMPTY"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"EMPTY"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"EMPTY"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"EMPTY"},{"p":"org.apache.tamaya.spi","c":"PropertySourceProvider","l":"EMPTY"},{"p":"org.apache.tamaya.spisupport","c":"EnumConverter","l":"EnumConverter(Class<T>)","url":"%3Cinit%3E(java.lang.Class)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"EnvironmentPropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"EnvironmentPropertySource(int)","url":"%3Cinit%3E(int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"EnvironmentPropertySource(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"EnvironmentPropertySource(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigDecimalConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigIntegerConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"BooleanConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ByteConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"CharConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ClassConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"CurrencyConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"DoubleConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"DurationConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"FileConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"FloatConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"InstantConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"IntegerConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateTimeConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalTimeConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"LongConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"MonthDayConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"NumberConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetDateTimeConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetTimeConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OptionalConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"PathConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ShortConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"SupplierConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"URIConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"URLConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearMonthConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"EnumConverter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"ConfigValueEvaluator","l":"evaluateAllValues(String, ConfigurationContext)","url":"evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"ConfigValueEvaluator","l":"evaluateRawValue(String, ConfigurationContext)","url":"evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigValueEvaluator","l":"evaluateRawValue(String, ConfigurationContext)","url":"evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"ConfigValueEvaluator","l":"evaluateRawValues(ConfigurationContext)","url":"evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigValueEvaluator","l":"evaluateRawValues(ConfigurationContext)","url":"evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"evaluteRawValue(String)","url":"evaluteRawValue(java.lang.String)"},{"p":"org.apache.tamaya.core.internal.converters","c":"FileConverter","l":"FileConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"FilterContext(List<PropertyValue>, ConfigurationContext)","url":"%3Cinit%3E(java.util.List,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"FilterContext(PropertyValue, ConfigurationContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"FilterContext(PropertyValue, Map<String, PropertyValue>, ConfigurationContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spi","c":"PropertyFilter","l":"filterProperty(PropertyValue, FilterContext)","url":"filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)"},{"p":"org.apache.tamaya.spisupport","c":"RegexPropertyFilter","l":"filterProperty(PropertyValue, FilterContext)","url":"filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"FloatConverter","l":"FloatConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"from(Collection<PropertyValue>)","url":"from(java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"from(Collection<PropertyValue>)","url":"from(java.util.Collection)"},{"p":"org.apache.tamaya","c":"Configuration","l":"get(Iterable<String>, Class<T>)","url":"get(java.lang.Iterable,java.lang.Class)"},{"p":"org.apache.tamaya","c":"Configuration","l":"get(Iterable<String>, TypeLiteral<T>)","url":"get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya","c":"Configuration","l":"get(Iterable<String>)","url":"get(java.lang.Iterable)"},{"p":"org.apache.tamaya","c":"Configuration","l":"get(String, Class<T>)","url":"get(java.lang.String,java.lang.Class)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"get(String, Class<T>)","url":"get(java.lang.String,java.lang.Class)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"get(String, Class<T>)","url":"get(java.lang.String,java.lang.Class)"},{"p":"org.apache.tamaya","c":"Configuration","l":"get(String, TypeLiteral<T>)","url":"get(java.lang.String,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"get(String, TypeLiteral<T>)","url":"get(java.lang.String,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"get(String, TypeLiteral<T>)","url":"get(java.lang.String,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya","c":"Configuration","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"get(String)","url":"get(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"getAllValues()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getAnnotatedElement()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceLoader","l":"getBundleContext()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"getChangeSupport()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"getClassLoader()"},{"p":"org.apache.tamaya.spi","c":"ClassloaderAware","l":"getClassLoader()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"getClassLoader()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"getClassLoader()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"getClassLoader()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"getClassLoader()"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"getConfigEntries()"},{"p":"org.apache.tamaya","c":"ConfigurationProvider","l":"getConfiguration()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"getConfiguration()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getConfiguration()"},{"p":"org.apache.tamaya","c":"ConfigurationProvider","l":"getConfiguration(ClassLoader)","url":"getConfiguration(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"getConfiguration(ClassLoader)","url":"getConfiguration(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"getConfiguration(ClassLoader)","url":"getConfiguration(java.lang.ClassLoader)"},{"p":"org.apache.tamaya","c":"ConfigurationProvider","l":"getConfigurationBuilder()"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"getConfigurationBuilder()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"getConfigurationBuilder()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getConfigurationContext()"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"getConfigurationContext()"},{"p":"org.apache.tamaya","c":"Configuration","l":"getContext()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getContext()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getContext()"},{"p":"org.apache.tamaya.spi","c":"ServiceContextManager","l":"getDefaultClassLoader()"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"getDefaultOrdinal()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"getDefaultOrdinal()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"getDefaultOrdinal()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"getDefaultPropertyConverters()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"getDefinedType(Class<?>)","url":"getDefinedType(java.lang.Class)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"getFrozenAt()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"getGenericInterfaceTypeParameters(Class<?>, Class<?>)","url":"getGenericInterfaceTypeParameters(java.lang.Class,java.lang.Class)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getId()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getIndex(PropertyValue)","url":"getIndex(org.apache.tamaya.spi.PropertyValue)"},{"p":"org.apache.tamaya.spisupport","c":"PriorityServiceComparator","l":"getInstance()"},{"p":"org.apache.tamaya.spisupport","c":"PropertyFilterComparator","l":"getInstance()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceComparator","l":"getInstance()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getKey()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getKey()"},{"p":"org.apache.tamaya","c":"ConfigurationSnapshot","l":"getKeys()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getKeys()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getKeys()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"getKeys()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getLists()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getLists(String)","url":"getLists(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"getMap(Properties)","url":"getMap(java.util.Properties)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getMeta()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getMeta()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getMeta(String)","url":"getMeta(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getMetaData(String)","url":"getMetaData(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getMetaData(String)","url":"getMetaData(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"getMetaData(String)","url":"getMetaData(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"MetadataProvider","l":"getMetaData(String)","url":"getMetaData(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getMetaEntry(String)","url":"getMetaEntry(java.lang.String)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"getName()"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"SimplePropertySource","l":"getName()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"getName()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"getName()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"getName()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"getName()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"getName()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getObjects(String)","url":"getObjects(java.lang.String)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOptional(Iterable<String>, Class<T>)","url":"getOptional(java.lang.Iterable,java.lang.Class)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOptional(Iterable<String>, TypeLiteral<T>)","url":"getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOptional(Iterable<String>)","url":"getOptional(java.lang.Iterable)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOptional(String, Class<T>)","url":"getOptional(java.lang.String,java.lang.Class)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOptional(String, TypeLiteral<T>)","url":"getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOptional(String)","url":"getOptional(java.lang.String)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOrDefault(Iterable<String>, Class<T>, T)","url":"getOrDefault(java.lang.Iterable,java.lang.Class,T)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOrDefault(Iterable<String>, String)","url":"getOrDefault(java.lang.Iterable,java.lang.String)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOrDefault(Iterable<String>, TypeLiteral<T>, T)","url":"getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOrDefault(String, Class<T>, T)","url":"getOrDefault(java.lang.String,java.lang.Class,T)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getOrDefault(String, Class<T>, T)","url":"getOrDefault(java.lang.String,java.lang.Class,T)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getOrDefault(String, Class<T>, T)","url":"getOrDefault(java.lang.String,java.lang.Class,T)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOrDefault(String, String)","url":"getOrDefault(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getOrDefault(String, String)","url":"getOrDefault(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getOrDefault(String, String)","url":"getOrDefault(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getOrDefault(String, TypeLiteral<T>, T)","url":"getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getOrDefault(String, TypeLiteral<T>, T)","url":"getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getOrDefault(String, TypeLiteral<T>, T)","url":"getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"getOrdinal()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"getOrdinal()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"getOrdinal()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"getOrdinal()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"getOrdinal()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceComparator","l":"getOrdinal(PropertySource, String)","url":"getOrdinal(org.apache.tamaya.spi.PropertySource,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceComparator","l":"getOrdinal(PropertySource)","url":"getOrdinal(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getOrSetValue(String, Supplier<T>)","url":"getOrSetValue(java.lang.String,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spisupport","c":"ReflectionUtil","l":"getParametrizedType(Class<?>)","url":"getParametrizedType(java.lang.Class)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getParent()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"getPrefix()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"getPrefix()"},{"p":"org.apache.tamaya.spisupport","c":"PriorityServiceComparator","l":"getPriority(Class)","url":"getPriority(java.lang.Class)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getPriority(Object)","url":"getPriority(java.lang.Object)"},{"p":"org.apache.tamaya.spisupport","c":"PriorityServiceComparator","l":"getPriority(Object)","url":"getPriority(java.lang.Object)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getProperties()"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"SimplePropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"getProperties()"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"getProperty()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"getPropertyConverter()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"getPropertyConverter()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getPropertyConverters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getPropertyConverters()"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"getPropertyConverters()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getPropertyConverters(TypeLiteral<T>)","url":"getPropertyConverters(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getPropertyConverters(TypeLiteral<T>)","url":"getPropertyConverters(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"getPropertyConverters(TypeLiteral<T>)","url":"getPropertyConverters(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"getPropertyFilters()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getPropertyFilters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"getPropertyFilters()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getPropertyFilters()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getPropertySource(String)","url":"getPropertySource(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"getPropertySource(String)","url":"getPropertySource(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getPropertySource(String)","url":"getPropertySource(java.lang.String)"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"SimplePropertySourceProvider","l":"getPropertySources()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"getPropertySources()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getPropertySources()"},{"p":"org.apache.tamaya.spi","c":"PropertySourceProvider","l":"getPropertySources()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"getPropertySources()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getPropertySources()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider","l":"getPropertySources()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getPropertyValue(int)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getPropertyValue(String)","url":"getPropertyValue(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getPropertyValues(String)","url":"getPropertyValues(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getQualifiedKey()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"getRawType()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"getResource(String)","url":"getResource(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getResource(String)","url":"getResource(java.lang.String)"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceLoader","l":"getResourceBundles()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"getResources(String)","url":"getResources(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getResources(String)","url":"getResources(java.lang.String)"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"getService(Class<T>, Supplier<T>)","url":"getService(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getService(Class<T>, Supplier<T>)","url":"getService(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"getService(Class<T>, Supplier<T>)","url":"getService(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getService(Class<T>)","url":"getService(java.lang.Class)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationContext","l":"getServiceContext()"},{"p":"org.apache.tamaya.spi","c":"ServiceContextManager","l":"getServiceContext()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"getServiceContext()"},{"p":"org.apache.tamaya.spi","c":"ServiceContextManager","l":"getServiceContext(ClassLoader)","url":"getServiceContext(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"getServices(Class<T>, Supplier<List<T>>)","url":"getServices(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getServices(Class<T>, Supplier<List<T>>)","url":"getServices(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"getServices(Class<T>, Supplier<List<T>>)","url":"getServices(java.lang.Class,java.util.function.Supplier)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"getServices(Class<T>)","url":"getServices(java.lang.Class)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getSize()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getSize()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getSize()"},{"p":"org.apache.tamaya","c":"Configuration","l":"getSnapshot(Iterable<String>)","url":"getSnapshot(java.lang.Iterable)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getSnapshot(Iterable<String>)","url":"getSnapshot(java.lang.Iterable)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getSnapshot(Iterable<String>)","url":"getSnapshot(java.lang.Iterable)"},{"p":"org.apache.tamaya","c":"Configuration","l":"getSnapshot(String...)","url":"getSnapshot(java.lang.String...)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getSource()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getSupportedFormats()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getTargetType()"},{"p":"org.apache.tamaya","c":"ConfigurationSnapshot","l":"getTimestamp()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"getTimestamp()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"getType()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"getTypeParameters(Type)","url":"getTypeParameters(java.lang.reflect.Type)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getValue()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getValue()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getValue()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getValue(int)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getValue(String)","url":"getValue(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"getValue(String)","url":"getValue(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"getValues()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getValues()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"getValues(String)","url":"getValues(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"getValueType()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"getValueType()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getValueType()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"getVersion()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"getVersion()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"getVersion()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"getVersion()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"getVersion()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigDecimalConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"BigIntegerConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"BooleanConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"ByteConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"CharConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"ClassConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"CurrencyConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"DoubleConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"DurationConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"FileConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"FloatConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"InstantConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"IntegerConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateTimeConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalTimeConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LongConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"MonthDayConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"NumberConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetDateTimeConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetTimeConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"OptionalConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"PathConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"ShortConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"SupplierConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"URIConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"URLConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearMonthConverter","l":"hashCode()"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"hashCode()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"hashCode()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"hashCode()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport","c":"EnumConverter","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"hashCode()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider","l":"hashCode()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"highestPriority(PropertySource)","url":"highestPriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"highestPriority(PropertySource)","url":"highestPriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spi","c":"ChangeSupport","l":"IMMUTABLE"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"immutable()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"increasePriority(PropertySource)","url":"increasePriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"increasePriority(PropertySource)","url":"increasePriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"incrementVersion()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"init(ClassLoader)","url":"init(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spi","c":"ClassloaderAware","l":"init(ClassLoader)","url":"init(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"init(ClassLoader)","url":"init(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"init(ClassLoader)","url":"init(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"init(ConfigurationContext)","url":"init(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"MetadataProvider","l":"init(ConfigurationContext)","url":"init(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"initConverters()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"initMainArgs(String...)","url":"initMainArgs(java.lang.String...)"},{"p":"org.apache.tamaya.core.internal.converters","c":"InstantConverter","l":"InstantConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"IntegerConverter","l":"IntegerConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"isConfigurationSettable(ClassLoader)","url":"isConfigurationSettable(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"isConfigurationSettable(ClassLoader)","url":"isConfigurationSettable(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"isDisabled()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"isDisabled()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"isEnabled()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"isImmutable()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"isInitialized()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"isLeaf()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"isRoot()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"isScannable()"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"isSinglePropertyScoped()"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"isTargetTypeSupported(TypeLiteral<?>)","url":"isTargetTypeSupported(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"iterator()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"iterator()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"iterator()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"JavaConfigurationPropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"load(Map<String, PropertyValue>)","url":"load(java.util.Map)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"loadDefaults()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateConverter","l":"LocalDateConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalDateTimeConverter","l":"LocalDateTimeConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LocalTimeConverter","l":"LocalTimeConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"LongConverter","l":"LongConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"lowestPriority(PropertySource)","url":"lowestPriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"lowestPriority(PropertySource)","url":"lowestPriority(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"Main","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"org.apache.tamaya.examples.minimal","c":"Main","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"org.apache.tamaya.spi","c":"PropertyValue.ValueType","l":"MAP"},{"p":"org.apache.tamaya","c":"Configuration","l":"map(UnaryOperator<Configuration>)","url":"map(java.util.function.UnaryOperator)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"mapProperties(Map<String, String>, long)","url":"mapProperties(java.util.Map,long)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"mapProperties(Map<String, String>, String, Map<String, String>, String)","url":"mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"mapProperties(Map<String, String>, String, Map<String, String>)","url":"mapProperties(java.util.Map,java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"mapProperties(Map<String, String>, String)","url":"mapProperties(java.util.Map,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"MapPropertySource(String, Map<String, String>, String)","url":"%3Cinit%3E(java.lang.String,java.util.Map,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"MapPropertySource(String, Map<String, String>)","url":"%3Cinit%3E(java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"MapPropertySource(String, Properties, String)","url":"%3Cinit%3E(java.lang.String,java.util.Properties,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"metaDataProvider"},{"p":"org.apache.tamaya.core.internal.converters","c":"MonthDayConverter","l":"MonthDayConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"mutable()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"mutable()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"mutable()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"newBuilder()"},{"p":"org.apache.tamaya.core.internal.converters","c":"NumberConverter","l":"NumberConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"of(PropertySource, Iterable<String>)","url":"of(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"of(PropertySource)","url":"of(org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"of(Type)","url":"of(java.lang.reflect.Type)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetDateTimeConverter","l":"OffsetDateTimeConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"OffsetTimeConverter","l":"OffsetTimeConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya","c":"ConfigOperator","l":"operate(Configuration)","url":"operate(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.core.internal.converters","c":"OptionalConverter","l":"OptionalConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"ordinal()"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"ordinal()"},{"p":"org.apache.tamaya.core","c":"OSGIActivator","l":"OSGIActivator()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"OSGIServiceContext(OSGIServiceLoader)","url":"%3Cinit%3E(org.apache.tamaya.core.internal.OSGIServiceLoader)"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceLoader","l":"OSGIServiceLoader(BundleContext)","url":"%3Cinit%3E(org.osgi.framework.BundleContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"PathConverter","l":"PathConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"PRIORITY_ANNOTATION_AVAILABLE"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"PropertiesResourcePropertySource(String, ClassLoader)","url":"%3Cinit%3E(java.lang.String,java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"PropertiesResourcePropertySource(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"PropertiesResourcePropertySource(URL, String)","url":"%3Cinit%3E(java.net.URL,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"PropertiesResourcePropertySource(URL)","url":"%3Cinit%3E(java.net.URL)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"PropertyConverterManager(ServiceContext, boolean)","url":"%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,boolean)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"PropertyConverterManager(ServiceContext)","url":"%3Cinit%3E(org.apache.tamaya.spi.ServiceContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"propertyConverters"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"propertyFilters"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"PropertySourceChangeSupport(ChangeSupport, PropertySource)","url":"%3Cinit%3E(org.apache.tamaya.spi.ChangeSupport,org.apache.tamaya.spi.PropertySource)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"propertySources"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"PropertyValue(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"PropertyValue(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.apache.tamaya","c":"Configuration","l":"query(ConfigQuery<T>)","url":"query(org.apache.tamaya.ConfigQuery)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"query(ConfigQuery<T>)","url":"query(org.apache.tamaya.ConfigQuery)"},{"p":"org.apache.tamaya","c":"ConfigQuery","l":"query(Configuration)","url":"query(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spisupport","c":"RegexPropertyFilter","l":"RegexPropertyFilter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"register(Class<T>, List<T>, boolean)","url":"register(java.lang.Class,java.util.List,boolean)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"register(Class<T>, List<T>, boolean)","url":"register(java.lang.Class,java.util.List,boolean)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"register(Class<T>, List<T>, boolean)","url":"register(java.lang.Class,java.util.List,boolean)"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"register(Class<T>, T, boolean)","url":"register(java.lang.Class,T,boolean)"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"register(Class<T>, T, boolean)","url":"register(java.lang.Class,T,boolean)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"register(Class<T>, T, boolean)","url":"register(java.lang.Class,T,boolean)"},{"p":"org.apache.tamaya.spisupport","c":"PropertyConverterManager","l":"register(TypeLiteral<T>, PropertyConverter<T>)","url":"register(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter)"},{"p":"org.apache.tamaya","c":"Configuration","l":"releaseConfiguration(ClassLoader)","url":"releaseConfiguration(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"releaseConfiguration(ClassLoader)","url":"releaseConfiguration(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"releaseConfiguration(ClassLoader)","url":"releaseConfiguration(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"reload()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"removeAllChangeListeners()"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"removeAllChangeListeners()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"removeAllChangeListeners()"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"removeChangeListener(BiConsumer<Set<String>, PropertySource>)","url":"removeChangeListener(java.util.function.BiConsumer)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"removeChangeListener(BiConsumer<Set<String>, PropertySource>)","url":"removeChangeListener(java.util.function.BiConsumer)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"PropertiesResourcePropertySource","l":"removeChangeListener(BiConsumer<Set<String>, PropertySource>)","url":"removeChangeListener(java.util.function.BiConsumer)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"removeMeta(String)","url":"removeMeta(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertyConverters(TypeLiteral<?>)","url":"removePropertyConverters(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"removePropertyConverters(TypeLiteral<?>)","url":"removePropertyConverters(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertyConverters(TypeLiteral<T>, Collection<PropertyConverter<T>>)","url":"removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"removePropertyConverters(TypeLiteral<T>, Collection<PropertyConverter<T>>)","url":"removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertyConverters(TypeLiteral<T>, PropertyConverter<T>...)","url":"removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertyFilters(Collection<PropertyFilter>)","url":"removePropertyFilters(java.util.Collection)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"removePropertyFilters(Collection<PropertyFilter>)","url":"removePropertyFilters(java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertyFilters(PropertyFilter...)","url":"removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertySources(Collection<PropertySource>)","url":"removePropertySources(java.util.Collection)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"removePropertySources(Collection<PropertySource>)","url":"removePropertySources(java.util.Collection)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"removePropertySources(PropertySource...)","url":"removePropertySources(org.apache.tamaya.spi.PropertySource...)"},{"p":"org.apache.tamaya.core.internal","c":"OSGIServiceContext","l":"reset()"},{"p":"org.apache.tamaya.spi","c":"ServiceContext","l":"reset()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"reset()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultServiceContext","l":"reset()"},{"p":"org.apache.tamaya.spisupport","c":"MetadataProvider","l":"reset()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"reset(String)","url":"reset(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"MetadataProvider","l":"reset(String)","url":"reset(java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceChangeSupport","l":"scheduleChangeMonitor(Supplier<Map<String, PropertyValue>>, long, TimeUnit)","url":"scheduleChangeMonitor(java.util.function.Supplier,long,java.util.concurrent.TimeUnit)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"serviceContext"},{"p":"org.apache.tamaya.spi","c":"ServiceContextManager","l":"set(ServiceContext)","url":"set(org.apache.tamaya.spi.ServiceContext)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"setAnnotatedElement(AnnotatedElement)","url":"setAnnotatedElement(java.lang.reflect.AnnotatedElement)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"setChangeSupport(ChangeSupport)","url":"setChangeSupport(org.apache.tamaya.spi.ChangeSupport)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"setClassLoader(ClassLoader)","url":"setClassLoader(java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"setClassLoader(ClassLoader)","url":"setClassLoader(java.lang.ClassLoader)"},{"p":"org.apache.tamaya","c":"ConfigurationProvider","l":"setConfiguration(Configuration, ClassLoader)","url":"setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfigurationProvider","l":"setConfiguration(Configuration, ClassLoader)","url":"setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationProviderSpi","l":"setConfiguration(Configuration, ClassLoader)","url":"setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"},{"p":"org.apache.tamaya","c":"ConfigurationProvider","l":"setConfiguration(Configuration)","url":"setConfiguration(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"setConfiguration(Configuration)","url":"setConfiguration(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"setConfiguration(Configuration)","url":"setConfiguration(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"setConfiguration(Configuration)","url":"setConfiguration(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"setContext(ConfigurationContext)","url":"setContext(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"setContext(ConfigurationContext)","url":"setContext(org.apache.tamaya.spi.ConfigurationContext)"},{"p":"org.apache.tamaya","c":"Configuration","l":"setCurrent(Configuration, ClassLoader)","url":"setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)"},{"p":"org.apache.tamaya","c":"Configuration","l":"setCurrent(Configuration)","url":"setCurrent(org.apache.tamaya.Configuration)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"setDefaultOrdinal(Integer)","url":"setDefaultOrdinal(java.lang.Integer)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"setDefaultOrdinal(Integer)","url":"setDefaultOrdinal(java.lang.Integer)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"setDisabled(boolean)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"setEnabled(boolean)"},{"p":"org.apache.tamaya.spisupport","c":"RegexPropertyFilter","l":"setExcludes(String...)","url":"setExcludes(java.lang.String...)"},{"p":"org.apache.tamaya.spisupport","c":"RegexPropertyFilter","l":"setIncludes(String...)","url":"setIncludes(java.lang.String...)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"setKey(String)","url":"setKey(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"setKey(String)","url":"setKey(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"setMeta(Map<String, String>)","url":"setMeta(java.util.Map)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"setMeta(String, Map<String, String>)","url":"setMeta(java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"setMeta(String, Map<String, String>)","url":"setMeta(java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"setMeta(String, Map<String, String>)","url":"setMeta(java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spisupport","c":"MetadataProvider","l":"setMeta(String, Map<String, String>)","url":"setMeta(java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"setMeta(String, Object)","url":"setMeta(java.lang.String,java.lang.Object)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"setMeta(String, String, String)","url":"setMeta(java.lang.String,java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"setMeta(String, String, String)","url":"setMeta(java.lang.String,java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"setMeta(String, String, String)","url":"setMeta(java.lang.String,java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport","c":"MetadataProvider","l":"setMeta(String, String, String)","url":"setMeta(java.lang.String,java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"setName(String)","url":"setName(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"setName(String)","url":"setName(java.lang.String)"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"setOrdinal(Integer)","url":"setOrdinal(java.lang.Integer)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"setOrdinal(Integer)","url":"setOrdinal(java.lang.Integer)"},{"p":"org.apache.tamaya.spisupport","c":"PropertySourceComparator","l":"setOrdinalKey(String)","url":"setOrdinalKey(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"setParent(PropertyValue)","url":"setParent(org.apache.tamaya.spi.PropertyValue)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"setPrefix(String)","url":"setPrefix(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setPropertyValue(PropertyValue)","url":"setPropertyValue(org.apache.tamaya.spi.PropertyValue)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"setServiceContext(ServiceContext)","url":"setServiceContext(org.apache.tamaya.spi.ServiceContext)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"setServiceContext(ServiceContext)","url":"setServiceContext(org.apache.tamaya.spi.ServiceContext)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"setTargetType(TypeLiteral)","url":"setTargetType(org.apache.tamaya.TypeLiteral)"},{"p":"org.apache.tamaya.spi","c":"ServiceContextManager","l":"setToStaticClassLoader(ServiceContext)","url":"setToStaticClassLoader(org.apache.tamaya.spi.ServiceContext)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setValue(String, String)","url":"setValue(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"setValue(String)","url":"setValue(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setValue(String)","url":"setValue(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"setValue(String)","url":"setValue(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"setValues(List<PropertyValue>)","url":"setValues(java.util.List)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setValues(Map<String, String>, String, boolean)","url":"setValues(java.util.Map,java.lang.String,boolean)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setValues(Map<String, String>)","url":"setValues(java.util.Map)"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"setValues(PropertyValue...)","url":"setValues(org.apache.tamaya.spi.PropertyValue...)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setValueWithCompositeKey(Map<String, String>)","url":"setValueWithCompositeKey(java.util.Map)"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"setValueWithCompositeKey(String, String)","url":"setValueWithCompositeKey(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"setVersion(int)"},{"p":"org.apache.tamaya.core.internal.converters","c":"ShortConverter","l":"ShortConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"SimplePropertySource","l":"SimplePropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"SimplePropertySource(File)","url":"%3Cinit%3E(java.io.File)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"SimplePropertySource(String, Map<String, String>, int)","url":"%3Cinit%3E(java.lang.String,java.util.Map,int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"SimplePropertySource(String, Map<String, String>)","url":"%3Cinit%3E(java.lang.String,java.util.Map)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"SimplePropertySource(String, URL)","url":"%3Cinit%3E(java.lang.String,java.net.URL)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource","l":"SimplePropertySource(URL)","url":"%3Cinit%3E(java.net.URL)"},{"p":"org.apache.tamaya.examples.custompropertysource","c":"SimplePropertySourceProvider","l":"SimplePropertySourceProvider()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"sortPropertyConverter(Comparator<PropertyConverter>)","url":"sortPropertyConverter(java.util.Comparator)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"sortPropertyConverter(Comparator<PropertyConverter>)","url":"sortPropertyConverter(java.util.Comparator)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"sortPropertyFilter(Comparator<PropertyFilter>)","url":"sortPropertyFilter(java.util.Comparator)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"sortPropertyFilter(Comparator<PropertyFilter>)","url":"sortPropertyFilter(java.util.Comparator)"},{"p":"org.apache.tamaya.spi","c":"ConfigurationBuilder","l":"sortPropertySources(Comparator<PropertySource>)","url":"sortPropertySources(java.util.Comparator)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationBuilder","l":"sortPropertySources(Comparator<PropertySource>)","url":"sortPropertySources(java.util.Comparator)"},{"p":"org.apache.tamaya.core","c":"OSGIActivator","l":"start(BundleContext)","url":"start(org.osgi.framework.BundleContext)"},{"p":"org.apache.tamaya.core","c":"OSGIActivator","l":"stop(BundleContext)","url":"stop(org.osgi.framework.BundleContext)"},{"p":"org.apache.tamaya.core.internal.converters","c":"SupplierConverter","l":"SupplierConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"ChangeSupport","l":"SUPPORTED"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"SystemPropertySource()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SystemPropertySource","l":"SystemPropertySource(int)","url":"%3Cinit%3E(int)"},{"p":"org.apache.tamaya.spi","c":"PropertySource","l":"TAMAYA_ORDINAL"},{"p":"org.apache.tamaya","c":"Configuration","l":"toBuilder()"},{"p":"org.apache.tamaya.core.internal","c":"CoreConfiguration","l":"toBuilder()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"toBuilder()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"toListValue()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"toListValue()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"toListValue()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"toLocalMap()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"toLocalMap()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"toMap()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"toMap()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"toObjectValue()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"toObjectValue()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"toObjectValue()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"toString()"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"toString()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext","l":"toString()"},{"p":"org.apache.tamaya.spi","c":"ConversionContext.Builder","l":"toString()"},{"p":"org.apache.tamaya.spi","c":"FilterContext","l":"toString()"},{"p":"org.apache.tamaya.spi","c":"ListValue","l":"toString()"},{"p":"org.apache.tamaya.spi","c":"ObjectValue","l":"toString()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigValueEvaluator","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationContext","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfigurationSnapshot","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultMetaDataProvider","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"DefaultPropertySourceSnapshot","l":"toString()"},{"p":"org.apache.tamaya.spisupport","c":"RegexPropertyFilter","l":"toString()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"toString()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource","l":"toString()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider","l":"toString()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"JavaConfigurationPropertySource","l":"toString()"},{"p":"org.apache.tamaya.core.propertysource","c":"BasePropertySource","l":"toStringValues()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BasePropertySource","l":"toStringValues()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"CLIPropertySource","l":"toStringValues()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"EnvironmentPropertySource","l":"toStringValues()"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"MapPropertySource","l":"toStringValues()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"TypeLiteral()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya","c":"TypeLiteral","l":"TypeLiteral(Type)","url":"%3Cinit%3E(java.lang.reflect.Type)"},{"p":"org.apache.tamaya.spi","c":"ChangeSupport","l":"UNSUPPORTED"},{"p":"org.apache.tamaya.core.internal.converters","c":"URIConverter","l":"URIConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"URLConverter","l":"URLConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue.ValueType","l":"VALUE"},{"p":"org.apache.tamaya.spi","c":"ChangeSupport","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"PropertyValue.ValueType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.apache.tamaya.spi","c":"ChangeSupport","l":"values()"},{"p":"org.apache.tamaya.spi","c":"PropertyValue.ValueType","l":"values()"},{"p":"org.apache.tamaya","c":"Configuration","l":"with(ConfigOperator)","url":"with(org.apache.tamaya.ConfigOperator)"},{"p":"org.apache.tamaya.spisupport","c":"DefaultConfiguration","l":"with(ConfigOperator)","url":"with(org.apache.tamaya.ConfigOperator)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withDefaultOrdinal(int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withName(String)","url":"withName(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withName(String)","url":"withName(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withOrdinal(int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withOrdinal(int)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withProperties(File)","url":"withProperties(java.io.File)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withProperties(Map<String, PropertyValue>)","url":"withProperties(java.util.Map)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withProperties(Map<String, String>, String)","url":"withProperties(java.util.Map,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withProperties(Map<String, String>)","url":"withProperties(java.util.Map)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withProperties(PropertyValue...)","url":"withProperties(org.apache.tamaya.spi.PropertyValue...)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withProperties(URL)","url":"withProperties(java.net.URL)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withProperty(String, String)","url":"withProperty(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider.Builder","l":"withPropertySourcs(Collection<PropertySource>)","url":"withPropertySourcs(java.util.Collection)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySourceProvider.Builder","l":"withPropertySourcs(PropertySource...)","url":"withPropertySourcs(org.apache.tamaya.spi.PropertySource...)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withSimpleProperties(Map<String, String>)","url":"withSimpleProperties(java.util.Map)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withSimpleProperty(String, String, String)","url":"withSimpleProperty(java.lang.String,java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withSimpleProperty(String, String)","url":"withSimpleProperty(java.lang.String,java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"BuildablePropertySource.Builder","l":"withSource(String)","url":"withSource(java.lang.String)"},{"p":"org.apache.tamaya.spisupport.propertysource","c":"SimplePropertySource.Builder","l":"withUuidName()"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearConverter","l":"YearConverter()","url":"%3Cinit%3E()"},{"p":"org.apache.tamaya.core.internal.converters","c":"YearMonthConverter","l":"YearMonthConverter()","url":"%3Cinit%3E()"}]
\ No newline at end of file
diff --git a/apidocs/stable/member-search-index.zip b/apidocs/stable/member-search-index.zip
new file mode 100644
index 0000000..c95ca3d
--- /dev/null
+++ b/apidocs/stable/member-search-index.zip
Binary files differ
diff --git a/apidocs/stable/org/apache/tamaya/ConfigException.html b/apidocs/stable/org/apache/tamaya/ConfigException.html
index 55a2971..150f91a 100644
--- a/apidocs/stable/org/apache/tamaya/ConfigException.html
+++ b/apidocs/stable/org/apache/tamaya/ConfigException.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConfigException (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConfigException (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.ConfigException class">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConfigException (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConfigException (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigException.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigException.html" target="_top">Frames</a></li>
-<li><a href="ConfigException.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,6 +77,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -72,7 +87,7 @@
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+<li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
@@ -81,27 +96,36 @@
 <li>Method</li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
 <h2 title="Class ConfigException" class="title">Class ConfigException</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
 <li>
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
 <li>
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">java.lang.RuntimeException</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.ConfigException</li>
@@ -119,12 +143,11 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">ConfigException</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a></pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
 <div class="block">Exception class (runtime exception) for configuration issues.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -137,52 +160,59 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigException.html#ConfigException-java.lang.String-">ConfigException</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ConfigException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
 <div class="block">Creates a new configuration exception.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigException.html#ConfigException-java.lang.String-java.lang.Throwable-">ConfigException</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
-               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ConfigException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;t)</code></th>
+<td class="colLast">
 <div class="block">Creates a new configuration exception.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
 </ul>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -190,18 +220,19 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ConfigException-java.lang.String-">
+<a id="&lt;init&gt;(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>ConfigException</h4>
-<pre>public&nbsp;ConfigException(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<pre>public&nbsp;ConfigException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
 <div class="block">Creates a new configuration exception.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -209,14 +240,14 @@
 </dl>
 </li>
 </ul>
-<a name="ConfigException-java.lang.String-java.lang.Throwable-">
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConfigException</h4>
-<pre>public&nbsp;ConfigException(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
-                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
+<pre>public&nbsp;ConfigException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;t)</pre>
 <div class="block">Creates a new configuration exception.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -227,21 +258,25 @@
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigException.html">Use</a></li>
@@ -252,16 +287,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigException.html" target="_top">Frames</a></li>
-<li><a href="ConfigException.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -274,6 +301,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -281,7 +311,7 @@
 <li>Nested&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li>
+<li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
@@ -290,10 +320,12 @@
 <li>Method</li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/ConfigOperator.html b/apidocs/stable/org/apache/tamaya/ConfigOperator.html
index a5fd04e..7761b9d 100644
--- a/apidocs/stable/org/apache/tamaya/ConfigOperator.html
+++ b/apidocs/stable/org/apache/tamaya/ConfigOperator.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConfigOperator (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConfigOperator (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.ConfigOperator interface">
 <meta name="keywords" content="operate()">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConfigOperator (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConfigOperator (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var data = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigOperator.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigOperator.html" target="_top">Frames</a></li>
-<li><a href="ConfigOperator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,6 +84,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -88,25 +103,42 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
 <h2 title="Interface ConfigOperator" class="title">Interface ConfigOperator</h2>
 </div>
 <div class="contentContainer">
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
+<dl>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
+</dl>
 <hr>
-<br>
-<pre>public interface <span class="typeNameLabel">ConfigOperator</span></pre>
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to another <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>. This can be used
- to modell additional functionality and applying it to a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance by calling
- the <a href="../../../org/apache/tamaya/Configuration.html#with-org.apache.tamaya.ConfigOperator-"><code>Configuration.with(org.apache.tamaya.ConfigOperator)</code></a> method.</div>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang" class="externalLink">@FunctionalInterface</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public interface <span class="typeNameLabel">ConfigOperator</span></pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
+</div>
+<div class="block">Models a function that maps a given <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to another <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>. This can be used
+ to model additional functionality and applying it to a given <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance by calling
+ the <a href="Configuration.html#with(org.apache.tamaya.ConfigOperator)"><code>Configuration.with(org.apache.tamaya.ConfigOperator)</code></a> method.</div>
 </li>
 </ul>
 </div>
@@ -114,26 +146,31 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigOperator.html#operate-org.apache.tamaya.Configuration-">operate</a></span>(<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">Creates a new <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
+<td class="colFirst"><code><a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#operate(org.apache.tamaya.Configuration)">operate</a></span>&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -141,20 +178,22 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="operate-org.apache.tamaya.Configuration-">
+<a id="operate(org.apache.tamaya.Configuration)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>operate</h4>
-<pre><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;operate(<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
-<div class="block">Creates a new <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration. Operators basically acts similar to
- decorators, whereas operated instances may have non compatible behaviour, e.g. by applying security constraints
+<pre class="methodSignature"><a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;operate&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration. Operators basically act similar to
+ decorators, whereas operated instances may have non-compatible behaviour, e.g. by applying security constraints
  or view restrictions.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -166,21 +205,25 @@
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigOperator.html">Use</a></li>
@@ -191,16 +234,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigOperator.html" target="_top">Frames</a></li>
-<li><a href="ConfigOperator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -213,6 +248,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -229,10 +267,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/ConfigQuery.html b/apidocs/stable/org/apache/tamaya/ConfigQuery.html
index 7e8cc68..512eb74 100644
--- a/apidocs/stable/org/apache/tamaya/ConfigQuery.html
+++ b/apidocs/stable/org/apache/tamaya/ConfigQuery.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConfigQuery (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConfigQuery (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.ConfigQuery interface">
 <meta name="keywords" content="query()">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConfigQuery (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConfigQuery (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var data = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigQuery.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigQuery.html" target="_top">Frames</a></li>
-<li><a href="ConfigQuery.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,6 +84,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -88,25 +103,46 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
 <h2 title="Interface ConfigQuery" class="title">Interface ConfigQuery&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the config query type</dd>
+</dl>
+<dl>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
+</dl>
 <hr>
-<br>
-<pre>public interface <span class="typeNameLabel">ConfigQuery&lt;T&gt;</span></pre>
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to something else. This can be used
- to model additional functionality and applying it to a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance by
- calling the <a href="../../../org/apache/tamaya/Configuration.html#query-org.apache.tamaya.ConfigQuery-"><code>Configuration.query(ConfigQuery)</code></a> method.</div>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang" class="externalLink">@FunctionalInterface</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public interface <span class="typeNameLabel">ConfigQuery&lt;T&gt;</span></pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
+</div>
+<div class="block">Models a function that maps a given <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to something else. This can be used
+ to model additional functionality and applying it to a given <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance by
+ calling the <a href="Configuration.html#query(org.apache.tamaya.ConfigQuery)"><code>Configuration.query(ConfigQuery)</code></a> method.</div>
 </li>
 </ul>
 </div>
@@ -114,26 +150,31 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../org/apache/tamaya/ConfigQuery.html" title="type parameter in ConfigQuery">T</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigQuery.html#query-org.apache.tamaya.Configuration-">query</a></span>(<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">Creates a result based on the given Configuration.</div>
+<td class="colFirst"><code><a href="ConfigQuery.html" title="type parameter in ConfigQuery">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#query(org.apache.tamaya.Configuration)">query</a></span>&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a result based on the given <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -141,20 +182,22 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="query-org.apache.tamaya.Configuration-">
+<a id="query(org.apache.tamaya.Configuration)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>query</h4>
-<pre><a href="../../../org/apache/tamaya/ConfigQuery.html" title="type parameter in ConfigQuery">T</a>&nbsp;query(<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
-<div class="block">Creates a result based on the given Configuration. Queries basically acts similar to
- operators, whereas they returns any kind of result.</div>
+<pre class="methodSignature"><a href="ConfigQuery.html" title="type parameter in ConfigQuery">T</a>&nbsp;query&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a result based on the given <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>. Queries basically act similar to
+ operators, whereas they return any kind of result.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>config</code> - the input configuration, not <code>null</code>.</dd>
@@ -165,21 +208,25 @@
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigQuery.html">Use</a></li>
@@ -190,16 +237,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigQuery.html" target="_top">Frames</a></li>
-<li><a href="ConfigQuery.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -212,6 +251,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -228,10 +270,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/Configuration.html b/apidocs/stable/org/apache/tamaya/Configuration.html
index 803850f..f3af6cb 100644
--- a/apidocs/stable/org/apache/tamaya/Configuration.html
+++ b/apidocs/stable/org/apache/tamaya/Configuration.html
@@ -1,50 +1,74 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Configuration (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Configuration (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.Configuration interface">
+<meta name="keywords" content="EMPTY">
 <meta name="keywords" content="get()">
 <meta name="keywords" content="getOrDefault()">
+<meta name="keywords" content="getOptional()">
 <meta name="keywords" content="getProperties()">
 <meta name="keywords" content="with()">
+<meta name="keywords" content="map()">
 <meta name="keywords" content="query()">
+<meta name="keywords" content="adapt()">
 <meta name="keywords" content="getContext()">
+<meta name="keywords" content="getSnapshot()">
+<meta name="keywords" content="toBuilder()">
+<meta name="keywords" content="setCurrent()">
+<meta name="keywords" content="current()">
+<meta name="keywords" content="releaseConfiguration()">
+<meta name="keywords" content="createConfigurationBuilder()">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Configuration (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Configuration (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var data = {"i0":18,"i1":1,"i2":1,"i3":1,"i4":18,"i5":18,"i6":18,"i7":18,"i8":18,"i9":6,"i10":6,"i11":18,"i12":18,"i13":18,"i14":18,"i15":18,"i16":18,"i17":18,"i18":18,"i19":18,"i20":18,"i21":18,"i22":6,"i23":6,"i24":6,"i25":18,"i26":18,"i27":50,"i28":1,"i29":1,"i30":1,"i31":18,"i32":50};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Configuration.html">Use</a></li>
@@ -55,16 +79,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/Configuration.html" target="_top">Frames</a></li>
-<li><a href="Configuration.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -77,29 +99,41 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
 <h2 title="Interface Configuration" class="title">Interface Configuration</h2>
 </div>
 <div class="contentContainer">
@@ -107,31 +141,34 @@
 <ul class="blockList">
 <li class="blockList">
 <dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></dd>
+</dl>
+<dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></dd>
+<dd><code><a href="core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></code>, <code><a href="spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></code>, <code><a href="spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public interface <span class="typeNameLabel">Configuration</span></pre>
-<div class="block"><p>A configuration models a aggregated set current properties, identified by
+<div class="block"><p>A configuration models an aggregated setPropertyValue of current properties, identified by
  a unique key, but adds higher level access functions to
- a <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>. Hereby in most
+ a <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>. Hereby in most
  cases a configuration is a wrapper around a composite
- <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> instance, which may combine
- multiple child config in well defined tree like structure,
- where nodes define logically the rules current priority, filtering,
+ <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> instance, which may combine
+ multiple child configurations in a well defined tree like structure,
+ where nodes define logically the rules' current priority, filtering,
  combination and overriding.
  </p>
  <h3>Implementation Requirements</h3>
- Implementations current this interface must be
+ Implementations of this interface must be
  <ul>
   <li>Thread safe</li>
   <li>Immutable</li>
  </ul>
 
- <p>It is not recommended that implementations also are serializable, since the any configuration can be <i>freezed</i>
- by reading out its complete configuration map into a serializable and remotable structure. This helps significantly
- simplifying the development current this interface, e.g. for being backed up by systems and stores that are not part current
+ <p>It is not recommended that implementations also are serializable, since the any configuration can be <i>frozen</i>
+ by reading out its complete configuration mapProperties into a serializable and remotable structure. This helps significantly
+ by simplifying the development of this interface, e.g. for being backed up by systems and stores that are not part of
  this library at all.</p></div>
 </li>
 </ul>
@@ -139,124 +176,378 @@
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ========== METHOD SUMMARY =========== -->
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
-<div class="block">Access a property.</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#get-java.lang.String-java.lang.Class-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;type)</code>
-<div class="block">Get the property keys as type T.</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#get-java.lang.String-org.apache.tamaya.TypeLiteral-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-   <a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>
-<div class="block">Get the property keys as type T.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#getContext--">getContext</a></span>()</code>
-<div class="block">Access a configuration's context.</div>
-</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-java.lang.Class-T-">getOrDefault</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;type,
-            T&nbsp;defaultValue)</code>
-<div class="block">Get the property keys as type T.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-java.lang.String-">getOrDefault</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;defaultValue)</code>
-<div class="block">Access a property.</div>
-</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-T-">getOrDefault</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-            <a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-            T&nbsp;defaultValue)</code>
-<div class="block">Get the property keys as type T.</div>
-</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#getProperties--">getProperties</a></span>()</code>
-<div class="block">Access all currently known configuration properties as a full <code>Map&lt;String,String&gt;</code>.</div>
-</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#query-org.apache.tamaya.ConfigQuery-">query</a></span>(<a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code>
-<div class="block">Query a configuration.</div>
-</td>
-</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/Configuration.html#with-org.apache.tamaya.ConfigOperator-">with</a></span>(<a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code>
-<div class="block">Extension point for adjusting configuration.</div>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Immutable and reusable, thread-safe implementation of an empty propertySource.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#adapt(java.util.function.Function)">adapt</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Function</a>&lt;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>,&#8203;T&gt;&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Query a configuration.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConfigurationBuilder()">createConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access a new configuration builder initialized with the current thread's context classloader.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#current()">current</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the configuration instance for the current thread's context classloader.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#current(java.lang.ClassLoader)">current</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">Accesses the configuration for a given classloader.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Iterable)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Iterable,java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+   <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String,java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext()">getContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access a configuration's context.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptional(java.lang.Iterable)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Access a String property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptional(java.lang.Iterable,java.lang.Class)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+           <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptional(java.lang.String)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a String property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptional(java.lang.String,java.lang.Class)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+           <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.Iterable,java.lang.Class,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.Iterable,java.lang.String)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+            <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access all currently known configuration properties as a full <code>Map&lt;String,String&gt;</code>.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSnapshot(java.lang.Iterable)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Create a snapshot, which contains the given keys.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>default <a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSnapshot(java.lang.String...)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Create a snapshot, which contains all known keys.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>default <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#map(java.util.function.UnaryOperator)">map</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink">UnaryOperator</a>&lt;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&gt;&nbsp;operator)</code></th>
+<td class="colLast">
+<div class="block">Extension point for adjusting configuration.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#query(org.apache.tamaya.ConfigQuery)">query</a></span>&#8203;(<a href="ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#adapt(java.util.function.Function)"><code>adapt(Function)</code></a></div>
+</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">Releases the configuration associated with the given classloader.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrent(org.apache.tamaya.Configuration)">setCurrent</a></span>&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setCurrent</a></span>&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>default <a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBuilder()">toBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder using this instance as its base.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>default <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#with(org.apache.tamaya.ConfigOperator)">with</a></span>&#8203;(<a href="ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">use <a href="#map(java.util.function.UnaryOperator)"><code>map(UnaryOperator)</code></a></div>
+</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
 </li>
 </ul>
 </div>
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ METHOD DETAIL ========== -->
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="EMPTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>static final&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a> EMPTY</pre>
+<div class="block">Immutable and reusable, thread-safe implementation of an empty propertySource.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="get-java.lang.String-">
+<a id="get(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;get(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
 <div class="block">Access a property.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>key</code> - the property's key, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the property's keys.</dd>
+<dd>the property's value.</dd>
 </dl>
 </li>
 </ul>
-<a name="getOrDefault-java.lang.String-java.lang.String-">
+<a id="get(java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in order of evaluation, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's value.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrDefault</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getOrDefault(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-                    <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;defaultValue)</pre>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</pre>
 <div class="block">Access a property.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -267,44 +558,201 @@
 </dl>
 </li>
 </ul>
-<a name="getOrDefault-java.lang.String-java.lang.Class-java.lang.Object-">
-<!--   -->
-</a><a name="getOrDefault-java.lang.String-java.lang.Class-T-">
+<a id="getOrDefault(java.lang.Iterable,java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrDefault</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;getOrDefault(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;type,
-                   T&nbsp;defaultValue)</pre>
-<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable current providing type T
- fromMap the given String keys.</div>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</pre>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in order of evaluation, not <code>null</code>.</dd>
+<dd><code>defaultValue</code> - value to be returned, if no value is present, not <code>null</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOptional(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptional</h4>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getOptional&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Access a String property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOptional(java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptional</h4>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getOptional&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block">Access a String property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOptional(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptional</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;&nbsp;getOptional&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the class modeled by the type parameter</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>key</code> - the property's absolute, or relative path, e.g. @code
-                     a/b/c/d.myProperty}, not  <code>null</code>.</dd>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dd><code>type</code> - the target type, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOptional(java.lang.Iterable,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptional</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;&nbsp;getOptional&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dd><code>type</code> - the target type, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptional</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;&nbsp;getOptional&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                    <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dd><code>type</code> - the target type, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptional</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;&nbsp;getOptional&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                                    <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dd><code>type</code> - the target type, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,java.lang.Class,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.String,java.lang.Class,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                           T&nbsp;defaultValue)</pre>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. <code>
+                     a/b/c/d.myProperty</code>, not  <code>null</code>.</dd>
 <dd><code>type</code> - The target type required, not  <code>null</code>.</dd>
 <dd><code>defaultValue</code> - value to be used, if no value is present, not <code>null</code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the property value, never <code>null</code>.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
 </dl>
 </li>
 </ul>
-<a name="get-java.lang.String-java.lang.Class-">
+<a id="getOrDefault(java.lang.Iterable,java.lang.Class,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.Iterable,java.lang.Class,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                           T&nbsp;defaultValue)</pre>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not  <code>null</code>.</dd>
+<dd><code>defaultValue</code> - value to be used, if no value is present, not <code>null</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String,java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;get(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-          <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;type)</pre>
-<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable current providing type T
- fromMap the given String keys.</div>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the class modeled by the type parameter</dd>
@@ -315,20 +763,43 @@
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the property value, never <code>null</code>.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
 </dl>
 </li>
 </ul>
-<a name="get-java.lang.String-org.apache.tamaya.TypeLiteral-">
+<a id="get(java.lang.Iterable,java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;get(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-          <a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
-<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable current providing type T
- fromMap the given String keys.</div>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String,org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+          <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ literals for the given key.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the type literal</dd>
@@ -339,23 +810,46 @@
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the property value, never <code>null</code>.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
 </dl>
 </li>
 </ul>
-<a name="getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-java.lang.Object-">
+<a id="get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">
 <!--   -->
-</a><a name="getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-T-">
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                  <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ literals for the given key.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the type literal</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrDefault</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;getOrDefault(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-                   <a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                   <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
                    T&nbsp;defaultValue)</pre>
-<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable current providing type T
- fromMap the given String keys.</div>
+<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ literals for the given key.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the type literal</dd>
@@ -367,34 +861,65 @@
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the property value, never null.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
 </dl>
 </li>
 </ul>
-<a name="getProperties--">
+<a id="getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+                           <a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                           T&nbsp;defaultValue)</pre>
+<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ literals for the given key.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the type literal</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the property's keys, in evaluation order, not <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dd><code>defaultValue</code> - default value to be used, if no value is present.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if the keys could not be converted to the required target type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getProperties</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getProperties()</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getProperties()</pre>
 <div class="block">Access all currently known configuration properties as a full <code>Map&lt;String,String&gt;</code>.
- Be aware that entries from non scannable parts of the registered <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
- instances may not be contained in the result, but nevertheless be accessible calling one of the
- <code>get(...)</code> methods.</div>
+ Be aware that entries from non scannable parts of the registered <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
+ instances may not be contained in the result, but nevertheless be accessible by calling one of the
+ <code>current(...)</code> methods.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>all currently known configuration properties.</dd>
 </dl>
 </li>
 </ul>
-<a name="with-org.apache.tamaya.ConfigOperator-">
+<a id="with(org.apache.tamaya.ConfigOperator)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>with</h4>
-<pre><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;with(<a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+default&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;with&#8203;(<a href="ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">use <a href="#map(java.util.function.UnaryOperator)"><code>map(UnaryOperator)</code></a></div>
+</div>
 <div class="block">Extension point for adjusting configuration.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -405,13 +930,34 @@
 </dl>
 </li>
 </ul>
-<a name="query-org.apache.tamaya.ConfigQuery-">
+<a id="map(java.util.function.UnaryOperator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>map</h4>
+<pre class="methodSignature">default&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;map&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink">UnaryOperator</a>&lt;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&gt;&nbsp;operator)</pre>
+<div class="block">Extension point for adjusting configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>operator</code> - A configuration operator, e.g. a filter, or an adjuster
+                 combining configurations, never  <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new adjusted configuration returned by the <code>operator</code>, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="query(org.apache.tamaya.ConfigQuery)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>query</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;query(<a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+default&nbsp;&lt;T&gt;&nbsp;T&nbsp;query&#8203;(<a href="ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#adapt(java.util.function.Function)"><code>adapt(Function)</code></a></div>
+</div>
 <div class="block">Query a configuration.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
@@ -423,13 +969,31 @@
 </dl>
 </li>
 </ul>
-<a name="getContext--">
+<a id="adapt(java.util.function.Function)">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
+<li class="blockList">
+<h4>adapt</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;adapt&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Function</a>&lt;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>,&#8203;T&gt;&nbsp;query)</pre>
+<div class="block">Query a configuration.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the configuration.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>query</code> - the query, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the result returned by the <code>query</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getContext()">
+<!--   -->
+</a>
+<ul class="blockList">
 <li class="blockList">
 <h4>getContext</h4>
-<pre><a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getContext()</pre>
+<pre class="methodSignature"><a href="spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getContext()</pre>
 <div class="block">Access a configuration's context.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -437,23 +1001,177 @@
 </dl>
 </li>
 </ul>
+<a id="getSnapshot(java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSnapshot</h4>
+<pre class="methodSignature"><a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>&nbsp;getSnapshot&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block">Create a snapshot, which contains the given keys.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the keys, not null. If empty a full snapshot with all known keys is returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a corresponding snapshot instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSnapshot(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSnapshot</h4>
+<pre class="methodSignature">default&nbsp;<a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>&nbsp;getSnapshot&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;keys)</pre>
+<div class="block">Create a snapshot, which contains all known keys.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the target key. If empty a full snapshot with all known keys is returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a corresponding snapshot instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="toBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toBuilder</h4>
+<pre class="methodSignature">default&nbsp;<a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;toBuilder()</pre>
+<div class="block">Create a new builder using this instance as its base.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setCurrent(org.apache.tamaya.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCurrent</h4>
+<pre class="methodSignature">static&nbsp;void&nbsp;setCurrent&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance. It is the responsibility of the ConfigurationProvider to trigger
+ corresponding update events for the current <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>, so observing
+ listeners can do whatever is appropriate to react to any given configuration change.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the new Configuration to be applied, not <code>null</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the current provider is read-only and
+                                                 does not support
+                                                 applying a new Configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCurrent</h4>
+<pre class="methodSignature">static&nbsp;void&nbsp;setCurrent&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance. It is the responsibility of the ConfigurationProvider to trigger
+ corresponding update events for the current <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>, so observing
+ listeners can do whatever is appropriate to react to any given configuration change.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the new Configuration to be applied, not <code>null</code></dd>
+<dd><code>classLoader</code> - the target classloader, not null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the current provider is read-only and
+                                                 does not support
+                                                 applying a new Configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="current()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>current</h4>
+<pre class="methodSignature">static&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;current()</pre>
+<div class="block">Access the configuration instance for the current thread's context classloader.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="current(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>current</h4>
+<pre class="methodSignature">static&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;current&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</pre>
+<div class="block">Accesses the configuration for a given classloader.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classloader</code> - the classloader, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="releaseConfiguration(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseConfiguration</h4>
+<pre class="methodSignature">static&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;releaseConfiguration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</pre>
+<div class="block">Releases the configuration associated with the given classloader.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classloader</code> - the classloader, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the released configuration, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConfigurationBuilder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createConfigurationBuilder</h4>
+<pre class="methodSignature">static&nbsp;<a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;createConfigurationBuilder()</pre>
+<div class="block">Access a new configuration builder initialized with the current thread's context classloader.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder, never null.</dd>
+</dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
+</li>
+</ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Configuration.html">Use</a></li>
@@ -464,16 +1182,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/Configuration.html" target="_top">Frames</a></li>
-<li><a href="Configuration.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -486,26 +1196,31 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/ConfigurationProvider.html b/apidocs/stable/org/apache/tamaya/ConfigurationProvider.html
index 1f1484a..52b949e 100644
--- a/apidocs/stable/org/apache/tamaya/ConfigurationProvider.html
+++ b/apidocs/stable/org/apache/tamaya/ConfigurationProvider.html
@@ -1,50 +1,62 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConfigurationProvider (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConfigurationProvider (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.ConfigurationProvider class">
 <meta name="keywords" content="getConfiguration()">
 <meta name="keywords" content="createConfiguration()">
-<meta name="keywords" content="getConfigurationContext()">
-<meta name="keywords" content="setConfigurationContext()">
 <meta name="keywords" content="setConfiguration()">
-<meta name="keywords" content="getConfigurationContextBuilder()">
+<meta name="keywords" content="getConfigurationBuilder()">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConfigurationProvider (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConfigurationProvider (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":41,"i3":9,"i4":9,"i5":41};
+var data = {"i0":41,"i1":41,"i2":41,"i3":41,"i4":41,"i5":41};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigurationProvider.html">Use</a></li>
@@ -55,16 +67,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigurationProvider.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -77,6 +87,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -93,18 +106,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
 <h2 title="Class ConfigurationProvider" class="title">Class ConfigurationProvider</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.ConfigurationProvider</li>
@@ -115,10 +137,13 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
-<pre>public final class <span class="typeNameLabel">ConfigurationProvider</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Static access to the <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for the very application.</div>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public final class <span class="typeNameLabel">ConfigurationProvider</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use static methods of <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a></div>
+</div>
+<div class="block">Static access to the <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> of the whole application.</div>
 </li>
 </ul>
 </div>
@@ -126,68 +151,81 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>static <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Creates a new configuration instance based on the given context.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigurationProvider.html#getConfiguration--">getConfiguration</a></span>()</code>
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Access the current configuration.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>static <a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigurationProvider.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a> instead of.</span></div>
-</div>
+<td class="colFirst"><code>static <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Access the current configuration.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigurationProvider.html#getConfigurationContextBuilder--">getConfigurationContextBuilder</a></span>()</code>
-<div class="block">Create a new <a href="../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> instance.</div>
+<td class="colFirst"><code>static <a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurationBuilder()">getConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Create a new <a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">This method allows to replace the current default <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/ConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use #setConfiguration(Configuration) instead of.</span></div>
-</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></span>&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
 </td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -195,18 +233,20 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getConfiguration--">
+<a id="getConfiguration()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public static&nbsp;<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration()</pre>
+<pre class="methodSignature">public static&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Access the current configuration.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -214,13 +254,31 @@
 </dl>
 </li>
 </ul>
-<a name="createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">
+<a id="getConfiguration(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Access the current configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding Configuration instance, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createConfiguration</h4>
-<pre>public static&nbsp;<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;createConfiguration(<a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<pre class="methodSignature">public static&nbsp;<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;createConfiguration&#8203;(<a href="spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Creates a new configuration instance based on the given context.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -230,103 +288,95 @@
 </dl>
 </li>
 </ul>
-<a name="getConfigurationContext--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getConfigurationContext</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public static&nbsp;<a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getConfigurationContext()</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a> instead of.</span></div>
-<div class="block">Get access to the current ConfigurationContext.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the current ConfigurationContext, never null.</dd>
-</dl>
-</li>
-</ul>
-<a name="setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setConfigurationContext</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public static&nbsp;void&nbsp;setConfigurationContext(<a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use #setConfiguration(Configuration) instead of.</span></div>
-<div class="block">This method allows to replace the current <a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> with a new
- instance. This can be used to update the context with a new one, e.g. because some of the configuration
- data has changed and should be updated. It is the responsibility of the ConfigurationProvider to trigger
- corresponding update events for the current <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>, so observing
- listeners can do whatever is appropriate to react to any given configuration changes.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>context</code> - the new ConfigurationContext to be applied.</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the current provider is read-only and does not support
-                                                 applying a new ConfigurationContext.</dd>
-</dl>
-</li>
-</ul>
-<a name="setConfiguration-org.apache.tamaya.Configuration-">
+<a id="setConfiguration(org.apache.tamaya.Configuration)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setConfiguration</h4>
-<pre>public static&nbsp;void&nbsp;setConfiguration(<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
-<div class="block">This method allows to replace the current default <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+<pre class="methodSignature">public static&nbsp;void&nbsp;setConfiguration&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance. It is the responsibility of the ConfigurationProvider to trigger
- corresponding update events for the current <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>, so observing
+ corresponding update events for the current <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>, so observing
  listeners can do whatever is appropriate to react to any given configuration change.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>config</code> - the new Configuration to be applied, not <code>null</code></dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the current provider is read-only and
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the current provider is read-only and
                                                  does not support
                                                  applying a new Configuration.</dd>
 </dl>
 </li>
 </ul>
-<a name="getConfigurationContextBuilder--">
+<a id="setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;setConfiguration&#8203;(<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance. It is the responsibility of the ConfigurationProvider to trigger
+ corresponding update events for the current <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>, so observing
+ listeners can do whatever is appropriate to react to any given configuration change.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the new Configuration to be applied, not <code>null</code></dd>
+<dd><code>classLoader</code> - the target classloader, not null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the current provider is read-only and
+                                                 does not support
+                                                 applying a new Configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="getConfigurationBuilder()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getConfigurationContextBuilder</h4>
-<pre>public static&nbsp;<a href="../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a>&nbsp;getConfigurationContextBuilder()</pre>
-<div class="block">Create a new <a href="../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> instance. This method creates
- a new builder instance that is not related to any concrete <a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.
- You can use <a href="../../../org/apache/tamaya/ConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-"><code>setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext)</code></a> to change the
- current configuration context.</div>
+<h4>getConfigurationBuilder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;getConfigurationBuilder()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Create a new <a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance. This method creates
+ a new builder instance that is not related to any concrete <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.
+ You can use <a href="Configuration.html#setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)"><code>Configuration.setCurrent(Configuration, ClassLoader)</code></a> to change the
+ current configuration.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new, empty <a href="../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a>, never null.</dd>
+<dd>a new, empty <a href="spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>, never null.</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../org/apache/tamaya/ConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-"><code>setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext)</code></a>, 
-<a href="../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a></dd>
+<dd><a href="Configuration.html#setCurrent(org.apache.tamaya.Configuration)"><code>Configuration.setCurrent(Configuration)</code></a>, 
+<a href="Configuration.html#setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)"><code>Configuration.setCurrent(Configuration, ClassLoader)</code></a>, 
+<a href="spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigurationProvider.html">Use</a></li>
@@ -337,16 +387,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/ConfigurationProvider.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -359,6 +401,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -375,10 +420,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/ConfigurationSnapshot.html b/apidocs/stable/org/apache/tamaya/ConfigurationSnapshot.html
new file mode 100644
index 0000000..e282b42
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/ConfigurationSnapshot.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.ConfigurationSnapshot interface">
+<meta name="keywords" content="EMPTY">
+<meta name="keywords" content="getKeys()">
+<meta name="keywords" content="getTimestamp()">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfigurationSnapshot.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
+<h2 title="Interface ConfigurationSnapshot" class="title">Interface ConfigurationSnapshot</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ConfigurationSnapshot</span>
+extends <a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></pre>
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">An empty snapshot.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeys()">getKeys</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The requested keys.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTimestamp()">getTimestamp</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the timestamp, when this snapshot has been taken.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.Configuration">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.<a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></h3>
+<code><a href="Configuration.html#adapt(java.util.function.Function)">adapt</a>, <a href="Configuration.html#get(java.lang.Iterable)">get</a>, <a href="Configuration.html#get(java.lang.Iterable,java.lang.Class)">get</a>, <a href="Configuration.html#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get</a>, <a href="Configuration.html#get(java.lang.String)">get</a>, <a href="Configuration.html#get(java.lang.String,java.lang.Class)">get</a>, <a href="Configuration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a>, <a href="Configuration.html#getContext()">getContext</a>, <a href="Configuration.html#getOptional(java.lang.Iterable)">getOptional</a>, <a href="Configuration.html#getOptional(java.lang.Iterable,java.lang.Class)">getOptional</a>, <a href="Configuration.html#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="Configuration.html#getOptional(java.lang.String)">getOptional</a>, <a href="Configuration.html#getOptional(java.lang.String,java.lang.Class)">getOptional</a>, <a href="Configuration.html#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="Configuration.html#getOrDefault(java.lang.Iterable,java.lang.Class,T)">getOrDefault</a>, <a href="Configuration.html#getOrDefault(java.lang.Iterable,java.lang.String)">getOrDefault</a>, <a href="Configuration.html#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a>, <a href="Configuration.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a>, <a href="Configuration.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a>, <a href="Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a>, <a href="Configuration.html#getProperties()">getProperties</a>, <a href="Configuration.html#getSnapshot(java.lang.Iterable)">getSnapshot</a>, <a href="Configuration.html#getSnapshot(java.lang.String...)">getSnapshot</a>, <a href="Configuration.html#map(java.util.function.UnaryOperator)">map</a>, <a href="Configuration.html#query(org.apache.tamaya.ConfigQuery)">query</a>, <a href="Configuration.html#toBuilder()">toBuilder</a>, <a href="Configuration.html#with(org.apache.tamaya.ConfigOperator)">with</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="EMPTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>static final&nbsp;<a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a> EMPTY</pre>
+<div class="block">An empty snapshot.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getKeys()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeys</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getKeys()</pre>
+<div class="block">The requested keys. Note that not all keys must be accessible as a property.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the requested keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTimestamp()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTimestamp</h4>
+<pre class="methodSignature">long&nbsp;getTimestamp()</pre>
+<div class="block">Get the timestamp, when this snapshot has been taken.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timestamp</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfigurationSnapshot.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/TypeLiteral.html b/apidocs/stable/org/apache/tamaya/TypeLiteral.html
index 5e640c5..da27bca 100644
--- a/apidocs/stable/org/apache/tamaya/TypeLiteral.html
+++ b/apidocs/stable/org/apache/tamaya/TypeLiteral.html
@@ -1,10 +1,10 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>TypeLiteral (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TypeLiteral (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.TypeLiteral class">
 <meta name="keywords" content="of()">
 <meta name="keywords" content="getGenericInterfaceTypeParameters()">
@@ -16,38 +16,52 @@
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="toString()">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TypeLiteral (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="TypeLiteral (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":9,"i6":10,"i7":9,"i8":10};
+var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":9,"i6":10,"i7":9,"i8":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/TypeLiteral.html">Use</a></li>
@@ -58,16 +72,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/TypeLiteral.html" target="_top">Frames</a></li>
-<li><a href="TypeLiteral.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -80,6 +92,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -96,18 +111,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya</a></div>
 <h2 title="Class TypeLiteral" class="title">Class TypeLiteral&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.TypeLiteral&lt;T&gt;</li>
@@ -123,18 +147,17 @@
 </dl>
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">TypeLiteral&lt;T&gt;</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
 <div class="block"><p>Class for instantiation of objects that represent parameterized types
  with current parameters.</p>
 
- <p>An object that represents a parameterized type may be obtained by
- subclassing <tt>TypeLiteral</tt>.</p>
+ <p>An createObject that represents a parameterized type may be obtained by
+ subclassing <a href="TypeLiteral.html" title="class in org.apache.tamaya"><code>TypeLiteral</code></a>.</p>
 
  <pre>
  TypeLiteral&lt;List&lt;Integer&gt;&gt; stringListType = new TypeLiteral&lt;List&lt;Integer&gt;&gt;() {};
@@ -150,96 +173,113 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#TypeLiteral--">TypeLiteral</a></span>()</code>
-<div class="block">Constructor only for directly implemeting a TypeLiteral hereby dynamically implementing a generic interface.</div>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TypeLiteral</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructor only for directly implementing a TypeLiteral hereby dynamically implementing a generic interface.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#TypeLiteral-java.lang.reflect.Type-">TypeLiteral</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;definedType)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.reflect.Type)">TypeLiteral</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;definedType)</code></th>
+<td class="colLast">
 <div class="block">Constructor.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#getDefinedType-java.lang.Class-">getDefinedType</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz)</code>&nbsp;</td>
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefinedType(java.lang.Class)">getDefinedType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#getGenericInterfaceTypeParameters-java.lang.Class-java.lang.Class-">getGenericInterfaceTypeParameters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
-                                 <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;interfaceType)</code>
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGenericInterfaceTypeParameters(java.lang.Class,java.lang.Class)">getGenericInterfaceTypeParameters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;interfaceType)</code></th>
+<td class="colLast">
 <div class="block">Checks the current implemented generic interfaces and evaluates the given single type parameter.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../org/apache/tamaya/TypeLiteral.html" title="type parameter in TypeLiteral">T</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#getRawType--">getRawType</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="TypeLiteral.html" title="type parameter in TypeLiteral">T</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawType()">getRawType</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Returns basic raw Java type.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#getType--">getType</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#getTypeParameters-java.lang.reflect.Type-">getTypeParameters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type)</code>
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeParameters(java.lang.reflect.Type)">getTypeParameters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;type)</code></th>
+<td class="colLast">
 <div class="block">Method that checks the class's type for a generic interface implementation type.</div>
 </td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i7" class="rowColor">
-<td class="colFirst"><code>static &lt;R&gt;&nbsp;<a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#of-java.lang.reflect.Type-">of</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type)</code>
+<td class="colFirst"><code>static &lt;R&gt;&nbsp;<a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;R&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(java.lang.reflect.Type)">of</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;type)</code></th>
+<td class="colLast">
 <div class="block">Creates a new TypeLiteral based on a given type.</div>
 </td>
 </tr>
 <tr id="i8" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/tamaya/TypeLiteral.html#toString--">toString</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -247,18 +287,19 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="TypeLiteral-java.lang.reflect.Type-">
+<a id="&lt;init&gt;(java.lang.reflect.Type)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>TypeLiteral</h4>
-<pre>public&nbsp;TypeLiteral(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;definedType)</pre>
+<pre>public&nbsp;TypeLiteral&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;definedType)</pre>
 <div class="block">Constructor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -266,164 +307,170 @@
 </dl>
 </li>
 </ul>
-<a name="TypeLiteral--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TypeLiteral</h4>
 <pre>public&nbsp;TypeLiteral()</pre>
-<div class="block">Constructor only for directly implemeting a TypeLiteral hereby dynamically implementing a generic interface.</div>
+<div class="block">Constructor only for directly implementing a TypeLiteral hereby dynamically implementing a generic interface.</div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="of-java.lang.reflect.Type-">
+<a id="of(java.lang.reflect.Type)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>of</h4>
-<pre>public static&nbsp;&lt;R&gt;&nbsp;<a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;R&gt;&nbsp;of(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type)</pre>
+<pre class="methodSignature">public static&nbsp;&lt;R&gt;&nbsp;<a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;R&gt;&nbsp;of&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;type)</pre>
 <div class="block">Creates a new TypeLiteral based on a given type.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>R</code> - the literal generic type.</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>type</code> - the type , not <code>null</code>.</dd>
+<dd><code>type</code> - the type, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the corresponding TypeLiteral, never <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="getGenericInterfaceTypeParameters-java.lang.Class-java.lang.Class-">
+<a id="getGenericInterfaceTypeParameters(java.lang.Class,java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getGenericInterfaceTypeParameters</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>[]&nbsp;getGenericInterfaceTypeParameters(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
-                                                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;interfaceType)</pre>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>[]&nbsp;getGenericInterfaceTypeParameters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz,
+                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;interfaceType)</pre>
 <div class="block">Checks the current implemented generic interfaces and evaluates the given single type parameter.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>clazz</code> - the class to check, not  <code>null</code>.</dd>
 <dd><code>interfaceType</code> - the interface type to be checked, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the generic type parameter, or null, if it cannot be evaluated.</dd>
+<dd>the generic type parameters, or an empty array, if it cannot be evaluated.</dd>
 </dl>
 </li>
 </ul>
-<a name="getTypeParameters-java.lang.reflect.Type-">
+<a id="getTypeParameters(java.lang.reflect.Type)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTypeParameters</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>[]&nbsp;getTypeParameters(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type)</pre>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>[]&nbsp;getTypeParameters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;type)</pre>
 <div class="block">Method that checks the class's type for a generic interface implementation type.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>type</code> - the type, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the generic type parameter of the given single type generic interfaceType, or null.</dd>
+<dd>the generic type parameter of the given single type generic interfaceType, or an empty array.</dd>
 </dl>
 </li>
 </ul>
-<a name="getType--">
+<a id="getType()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getType</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;getType()</pre>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getType()</pre>
 </li>
 </ul>
-<a name="getRawType--">
+<a id="getRawType()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRawType</h4>
-<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../org/apache/tamaya/TypeLiteral.html" title="type parameter in TypeLiteral">T</a>&gt;&nbsp;getRawType()</pre>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="TypeLiteral.html" title="type parameter in TypeLiteral">T</a>&gt;&nbsp;getRawType()</pre>
 <div class="block">Returns basic raw Java type.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the actual type represented by this object</dd>
+<dd>the actual type represented by this createObject</dd>
 </dl>
 </li>
 </ul>
-<a name="getDefinedType-java.lang.Class-">
+<a id="getDefinedType(java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefinedType</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;getDefinedType(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getDefinedType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="toString--">
+<a id="toString()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/TypeLiteral.html">Use</a></li>
@@ -434,16 +481,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/TypeLiteral.html" target="_top">Frames</a></li>
-<li><a href="TypeLiteral.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -456,6 +495,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -472,10 +514,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/ConfigException.html b/apidocs/stable/org/apache/tamaya/class-use/ConfigException.html
index a8669f5..a6428f0 100644
--- a/apidocs/stable/org/apache/tamaya/class-use/ConfigException.html
+++ b/apidocs/stable/org/apache/tamaya/class-use/ConfigException.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.ConfigException (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.ConfigException (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.ConfigException (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.ConfigException (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigException.html" title="class in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigException.html" target="_top">Frames</a></li>
-<li><a href="ConfigException.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.ConfigException" class="title">Uses of Class<br>org.apache.tamaya.ConfigException</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.ConfigException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigException.html" title="class in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigException.html" target="_top">Frames</a></li>
-<li><a href="ConfigException.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/ConfigOperator.html b/apidocs/stable/org/apache/tamaya/class-use/ConfigOperator.html
index 890a302..62742a6 100644
--- a/apidocs/stable/org/apache/tamaya/class-use/ConfigOperator.html
+++ b/apidocs/stable/org/apache/tamaya/class-use/ConfigOperator.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.ConfigOperator (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.ConfigOperator (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.ConfigOperator (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.ConfigOperator (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigOperator.html" title="interface in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigOperator.html" target="_top">Frames</a></li>
-<li><a href="ConfigOperator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,30 +76,44 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.ConfigOperator" class="title">Uses of Interface<br>org.apache.tamaya.ConfigOperator</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -95,60 +121,73 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a> in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a> in <a href="../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/Configuration.html#with-org.apache.tamaya.ConfigOperator-">with</a></span>(<a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code>
-<div class="block">Extension point for adjusting configuration.</div>
+<td class="colFirst"><code>default <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#with(org.apache.tamaya.ConfigOperator)">with</a></span>&#8203;(<a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">use <a href="../Configuration.html#map(java.util.function.UnaryOperator)"><code>Configuration.map(UnaryOperator)</code></a></div>
+</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a> in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a> in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#with-org.apache.tamaya.ConfigOperator-">with</a></span>(<a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#with(org.apache.tamaya.ConfigOperator)">with</a></span>&#8203;(<a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigOperator.html" title="interface in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -157,16 +196,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigOperator.html" target="_top">Frames</a></li>
-<li><a href="ConfigOperator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -179,11 +210,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/ConfigQuery.html b/apidocs/stable/org/apache/tamaya/class-use/ConfigQuery.html
index 69cb6fe..0230d6b 100644
--- a/apidocs/stable/org/apache/tamaya/class-use/ConfigQuery.html
+++ b/apidocs/stable/org/apache/tamaya/class-use/ConfigQuery.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.ConfigQuery (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.ConfigQuery (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.ConfigQuery (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.ConfigQuery (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigQuery.html" title="interface in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigQuery.html" target="_top">Frames</a></li>
-<li><a href="ConfigQuery.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,30 +76,44 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.ConfigQuery" class="title">Uses of Interface<br>org.apache.tamaya.ConfigQuery</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -95,60 +121,73 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a> in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a> in <a href="../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/Configuration.html#query-org.apache.tamaya.ConfigQuery-">query</a></span>(<a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code>
-<div class="block">Query a configuration.</div>
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#query(org.apache.tamaya.ConfigQuery)">query</a></span>&#8203;(<a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="../Configuration.html#adapt(java.util.function.Function)"><code>Configuration.adapt(Function)</code></a></div>
+</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a> in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a> in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#query-org.apache.tamaya.ConfigQuery-">query</a></span>(<a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#query(org.apache.tamaya.ConfigQuery)">query</a></span>&#8203;(<a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigQuery.html" title="interface in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -157,16 +196,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigQuery.html" target="_top">Frames</a></li>
-<li><a href="ConfigQuery.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -179,11 +210,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/Configuration.html b/apidocs/stable/org/apache/tamaya/class-use/Configuration.html
index bd031a0..cae809c 100644
--- a/apidocs/stable/org/apache/tamaya/class-use/Configuration.html
+++ b/apidocs/stable/org/apache/tamaya/class-use/Configuration.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.Configuration (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.Configuration (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.Configuration (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.Configuration (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Class</a></li>
+<li><a href="../Configuration.html" title="interface in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/Configuration.html" target="_top">Frames</a></li>
-<li><a href="Configuration.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,34 +76,58 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.Configuration" class="title">Uses of Interface<br>org.apache.tamaya.Configuration</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -99,212 +135,527 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> that return <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/ConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></span></code></th>
+<td class="colLast">
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya</a> declared as <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Immutable and reusable, thread-safe implementation of an empty propertySource.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> that return <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../ConfigurationProvider.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Creates a new configuration instance based on the given context.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/ConfigurationProvider.html#getConfiguration--">getConfiguration</a></span>()</code>
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#current()">current</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the configuration instance for the current thread's context classloader.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#current(java.lang.ClassLoader)">current</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">Accesses the configuration for a given classloader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../ConfigurationProvider.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Access the current configuration.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigOperator.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/ConfigOperator.html#operate-org.apache.tamaya.Configuration-">operate</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">Creates a new <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../ConfigurationProvider.html#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Access the current configuration.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/Configuration.html#with-org.apache.tamaya.ConfigOperator-">with</a></span>(<a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code>
+<td class="colFirst"><code>default <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#map(java.util.function.UnaryOperator)">map</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink">UnaryOperator</a>&lt;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&gt;&nbsp;operator)</code></th>
+<td class="colLast">
+<div class="block">Extension point for adjusting configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigOperator.</span><code><span class="memberNameLink"><a href="../ConfigOperator.html#operate(org.apache.tamaya.Configuration)">operate</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">Releases the configuration associated with the given classloader.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#with(org.apache.tamaya.ConfigOperator)">with</a></span>&#8203;(<a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">use <a href="../Configuration.html#map(java.util.function.UnaryOperator)"><code>map(UnaryOperator)</code></a></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigOperator.</span><code><span class="memberNameLink"><a href="../ConfigOperator.html#operate(org.apache.tamaya.Configuration)">operate</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigQuery.html" title="type parameter in ConfigQuery">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigQuery.</span><code><span class="memberNameLink"><a href="../ConfigQuery.html#query(org.apache.tamaya.Configuration)">query</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a result based on the given <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">This method allows replacement of the current default <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#setCurrent(org.apache.tamaya.Configuration)">setCurrent</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method allows replacement of the current default <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#setCurrent(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setCurrent</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">This method allows replacement of the current default <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">org.apache.tamaya</a> with type arguments of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#adapt(java.util.function.Function)">adapt</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Function</a>&lt;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>,&#8203;T&gt;&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Query a configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#map(java.util.function.UnaryOperator)">map</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink">UnaryOperator</a>&lt;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&gt;&nbsp;operator)</code></th>
+<td class="colLast">
 <div class="block">Extension point for adjusting configuration.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigOperator.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/ConfigOperator.html#operate-org.apache.tamaya.Configuration-">operate</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">Creates a new <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the given Configuration.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/ConfigQuery.html" title="type parameter in ConfigQuery">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigQuery.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/ConfigQuery.html#query-org.apache.tamaya.Configuration-">query</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">Creates a result based on the given Configuration.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/ConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">This method allows to replace the current default <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
- instance.</div>
-</td>
-</tr>
-</tbody>
-</table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></span></code>
-<div class="block">Implementation of the Configuration API.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></span></code></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../core/internal/CoreConfigurationBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#getConfiguration--">getConfiguration</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationProvider.</span><code><span class="memberNameLink"><a href="../core/internal/CoreConfigurationProvider.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#with-org.apache.tamaya.ConfigOperator-">with</a></span>(<a href="../../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationProvider.</span><code><span class="memberNameLink"><a href="../core/internal/CoreConfigurationProvider.html#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationProvider.</span><code><span class="memberNameLink"><a href="../core/internal/CoreConfigurationProvider.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationProvider.</span><code><span class="memberNameLink"><a href="../core/internal/CoreConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Create a <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../core/internal/CoreConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.Configuration)">CoreConfigurationBuilder</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the data in this builder.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getConfiguration--">getConfiguration</a></span>()</code>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationProviderSpi.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationProviderSpi.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="../spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)"><code>ConfigurationProviderSpi.getConfiguration(ClassLoader)</code></a> instead of.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Access the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../spi/ConversionContext.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Get the configuration, which is targeted.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration--">getConfiguration</a></span>()</code>
-<div class="block">Access the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationProviderSpi.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">This method allows to release a <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for a classloader.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code>
-<div class="block">Sets the configuration.</div>
+<td class="colFirst"><code>default <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">This method allows to replace the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationProviderSpi.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">This method allows to replace the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../spi/ConversionContext.Builder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Sets the configuration.</div>
+</td>
+</tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.Configuration-org.apache.tamaya.spi.ConfigurationContext-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
-       <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spi/ConversionContext.Builder.html#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.String,org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a> in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></span></code></th>
+<td class="colLast">
+<div class="block">Implementation of the Configuration API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></span></code></th>
+<td class="colLast">
+<div class="block">/**
+ Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#with(org.apache.tamaya.ConfigOperator)">with</a></span>&#8203;(<a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Allows to setCurrent configuration context during unit tests.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.Configuration)">DefaultConfigurationBuilder</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html#%3Cinit%3E(org.apache.tamaya.Configuration)">DefaultConfigurationSnapshot</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.Iterable)">DefaultConfigurationSnapshot</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Class</a></li>
+<li><a href="../Configuration.html" title="interface in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -313,16 +664,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/Configuration.html" target="_top">Frames</a></li>
-<li><a href="Configuration.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -335,11 +678,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/ConfigurationProvider.html b/apidocs/stable/org/apache/tamaya/class-use/ConfigurationProvider.html
index 626bf4b..5617c0b 100644
--- a/apidocs/stable/org/apache/tamaya/class-use/ConfigurationProvider.html
+++ b/apidocs/stable/org/apache/tamaya/class-use/ConfigurationProvider.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.ConfigurationProvider (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.ConfigurationProvider (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.ConfigurationProvider (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.ConfigurationProvider (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigurationProvider.html" title="class in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigurationProvider.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.ConfigurationProvider" class="title">Uses of Class<br>org.apache.tamaya.ConfigurationProvider</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.ConfigurationProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">Class</a></li>
+<li><a href="../ConfigurationProvider.html" title="class in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/ConfigurationProvider.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/ConfigurationSnapshot.html b/apidocs/stable/org/apache/tamaya/class-use/ConfigurationSnapshot.html
new file mode 100644
index 0000000..647ab17
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/class-use/ConfigurationSnapshot.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.ConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.tamaya.ConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.apache.tamaya.ConfigurationSnapshot" class="title">Uses of Interface<br>org.apache.tamaya.ConfigurationSnapshot</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a> in <a href="../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya</a> declared as <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationSnapshot.</span><code><span class="memberNameLink"><a href="../ConfigurationSnapshot.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">An empty snapshot.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> that return <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#getSnapshot(java.lang.Iterable)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Create a snapshot, which contains the given keys.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#getSnapshot(java.lang.String...)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Create a snapshot, which contains all known keys.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a> in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></span></code></th>
+<td class="colLast">
+<div class="block">/**
+ Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#getSnapshot(java.lang.Iterable)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationSnapshot.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html#getSnapshot(java.lang.Iterable)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/class-use/TypeLiteral.html b/apidocs/stable/org/apache/tamaya/class-use/TypeLiteral.html
index d25d039..8a41962 100644
--- a/apidocs/stable/org/apache/tamaya/class-use/TypeLiteral.html
+++ b/apidocs/stable/org/apache/tamaya/class-use/TypeLiteral.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.TypeLiteral (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.TypeLiteral (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.TypeLiteral (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.TypeLiteral (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">Class</a></li>
+<li><a href="../TypeLiteral.html" title="class in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/TypeLiteral.html" target="_top">Frames</a></li>
-<li><a href="TypeLiteral.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,34 +76,50 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.TypeLiteral" class="title">Uses of Class<br>org.apache.tamaya.TypeLiteral</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -99,314 +127,429 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a> in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> that return <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a> in <a href="../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> that return <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static &lt;R&gt;&nbsp;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">TypeLiteral.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/TypeLiteral.html#of-java.lang.reflect.Type-">of</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>&nbsp;type)</code>
+<td class="colFirst"><code>static &lt;R&gt;&nbsp;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;R&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TypeLiteral.</span><code><span class="memberNameLink"><a href="../TypeLiteral.html#of(java.lang.reflect.Type)">of</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;type)</code></th>
+<td class="colLast">
 <div class="block">Creates a new TypeLiteral based on a given type.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/Configuration.html#get-java.lang.String-org.apache.tamaya.TypeLiteral-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-   <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+   <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
 <div class="block">Get the property keys as type T.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/Configuration.html#getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-T-">getOrDefault</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-            <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-            T&nbsp;defaultValue)</code>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+           <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+           <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Access a property, using an an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Optional</code></a> instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
 <div class="block">Get the property keys as type T.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a> in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return types with arguments of type <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a> in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertyConverter--">getPropertyConverter</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>
-<div class="block">Get a map of all property converters currently registered.</div>
-</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                    <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;propertyConverter)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">addPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                     <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">addPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                     <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#convertValue-java.lang.String-java.lang.String-org.apache.tamaya.TypeLiteral-">convertValue</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-            <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected &lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#createDefaultPropertyConverter-org.apache.tamaya.TypeLiteral-">createDefaultPropertyConverter</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code>
-<div class="block">Creates a dynamic PropertyConverter for the given target type.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#get-java.lang.String-org.apache.tamaya.TypeLiteral-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-   <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>
-<div class="block">Accesses the current String value for the given key and tries to convert it
- using the <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
- <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#getOrDefault-java.lang.String-org.apache.tamaya.TypeLiteral-T-">getOrDefault</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-            <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-            T&nbsp;defaultValue)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code>
-<div class="block">Get the list of all current registered converters for the given target type.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#isTargetTypeSupported-org.apache.tamaya.TypeLiteral-">isTargetTypeSupported</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
-<div class="block">Allows to evaluate if a given target type is supported.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#register-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">register</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType,
-        <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;converter)</code>
-<div class="block">Registers a ew converter instance.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-">removePropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">removePropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">removePropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;converters)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a> in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getTargetType--">getTargetType</a></span>()</code>
+<td class="colFirst"><code><a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../spi/ConversionContext.html#getTargetType()">getTargetType</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Get the target type required.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertyConverter--">getPropertyConverter</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current registered property converters.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationContext.html#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
 <div class="block">
- This method returns the Map of registered PropertyConverters
+ This method returns the Map of registered <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
  per type.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                    <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;propertyConverter)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">addPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                     <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code>
-<div class="block">This method can be used for adding <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">addPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                     <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code>
-<div class="block">This method can be used for adding <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
 <div class="block">
- This method returns the registered PropertyConverters for a given type.</div>
+ This method returns the registered <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-">removePropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code></th>
+<td class="colLast">
 <div class="block">Removes all converters for the given type, which actually renders a given type
  unsupported for type conversion.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">removePropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
 <div class="block">Removes the given PropertyConverter instances for the given type,
  if existing.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances for the given type,
+ if existing.</div>
+</td>
+</tr>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">removePropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code>
-<div class="block">Removes the given PropertyConverter instances for the given type,
- if existing.</div>
+<td class="colFirst"><code><a href="../spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../spi/ConversionContext.Builder.html#setTargetType(org.apache.tamaya.TypeLiteral)">setTargetType</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Sets the target type explicitly.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.Configuration-org.apache.tamaya.spi.ConfigurationContext-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
-       <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spi/ConversionContext.Builder.html#%3Cinit%3E(java.lang.String,org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spi/ConversionContext.Builder.html#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.String,org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spi/ConversionContext.Builder.html#%3Cinit%3E(org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a> in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type parameters of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#propertyConverters">propertyConverters</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return types with arguments of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#getDefaultPropertyConverters()">getDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationContext.html#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../spisupport/PropertyConverterManager.html#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a mapProperties of all property converters currently registered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)">convertValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected &lt;T&gt;&nbsp;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../spisupport/PropertyConverterManager.html#createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)">createDefaultPropertyConverter</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Creates a dynamic <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> for the given target type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationSnapshot.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationSnapshot.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationSnapshot.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../spisupport/PropertyConverterManager.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Get the createList of all current registered converters for the given target type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../spisupport/PropertyConverterManager.html#isTargetTypeSupported(org.apache.tamaya.TypeLiteral)">isTargetTypeSupported</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Allows to evaluate if a given target type is supported.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../spisupport/PropertyConverterManager.html#register(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter)">register</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType,
+        <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;converter)</code></th>
+<td class="colLast">
+<div class="block">Registers a new converters instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../spisupport/DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext</a></span>&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                           <a href="../spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">Class</a></li>
+<li><a href="../TypeLiteral.html" title="class in org.apache.tamaya">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
@@ -415,16 +558,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/class-use/TypeLiteral.html" target="_top">Frames</a></li>
-<li><a href="TypeLiteral.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -437,11 +572,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/OSGIActivator.html b/apidocs/stable/org/apache/tamaya/core/OSGIActivator.html
index c4d9ec0..aa0b76a 100644
--- a/apidocs/stable/org/apache/tamaya/core/OSGIActivator.html
+++ b/apidocs/stable/org/apache/tamaya/core/OSGIActivator.html
@@ -1,46 +1,60 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>OSGIActivator (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>OSGIActivator (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.OSGIActivator class">
 <meta name="keywords" content="start()">
 <meta name="keywords" content="stop()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OSGIActivator (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="OSGIActivator (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var data = {"i0":10,"i1":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/OSGIActivator.html">Use</a></li>
@@ -51,16 +65,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/OSGIActivator.html" target="_top">Frames</a></li>
-<li><a href="OSGIActivator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -73,6 +85,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -89,18 +104,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core</a></div>
 <h2 title="Class OSGIActivator" class="title">Class OSGIActivator</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.OSGIActivator</li>
@@ -112,14 +136,13 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.osgi.framework.BundleActivator</dd>
+<dd><code>org.osgi.framework.BundleActivator</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">OSGIActivator</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
 implements org.osgi.framework.BundleActivator</pre>
-<div class="block">A bundle activator that registers the <a href="../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><code>OSGIServiceLoader</code></a>.</div>
+<div class="block">A bundle activator that registers the <a href="internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><code>OSGIServiceLoader</code></a>.</div>
 </li>
 </ul>
 </div>
@@ -127,52 +150,61 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/OSGIActivator.html#OSGIActivator--">OSGIActivator</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">OSGIActivator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/OSGIActivator.html#start-org.osgi.framework.BundleContext-">start</a></span>(org.osgi.framework.BundleContext&nbsp;context)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start(org.osgi.framework.BundleContext)">start</a></span>&#8203;(org.osgi.framework.BundleContext&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/core/OSGIActivator.html#stop-org.osgi.framework.BundleContext-">stop</a></span>(org.osgi.framework.BundleContext&nbsp;context)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop(org.osgi.framework.BundleContext)">stop</a></span>&#8203;(org.osgi.framework.BundleContext&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -180,12 +212,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="OSGIActivator--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -196,32 +229,34 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="start-org.osgi.framework.BundleContext-">
+<a id="start(org.osgi.framework.BundleContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;start(org.osgi.framework.BundleContext&nbsp;context)</pre>
+<pre class="methodSignature">public&nbsp;void&nbsp;start&#8203;(org.osgi.framework.BundleContext&nbsp;context)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>start</code>&nbsp;in interface&nbsp;<code>org.osgi.framework.BundleActivator</code></dd>
 </dl>
 </li>
 </ul>
-<a name="stop-org.osgi.framework.BundleContext-">
+<a id="stop(org.osgi.framework.BundleContext)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;stop(org.osgi.framework.BundleContext&nbsp;context)</pre>
+<pre class="methodSignature">public&nbsp;void&nbsp;stop&#8203;(org.osgi.framework.BundleContext&nbsp;context)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>stop</code>&nbsp;in interface&nbsp;<code>org.osgi.framework.BundleActivator</code></dd>
@@ -230,21 +265,25 @@
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/OSGIActivator.html">Use</a></li>
@@ -255,16 +294,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/OSGIActivator.html" target="_top">Frames</a></li>
-<li><a href="OSGIActivator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -277,6 +308,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -293,10 +327,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/class-use/OSGIActivator.html b/apidocs/stable/org/apache/tamaya/core/class-use/OSGIActivator.html
index 6214fc8..48f6764 100644
--- a/apidocs/stable/org/apache/tamaya/core/class-use/OSGIActivator.html
+++ b/apidocs/stable/org/apache/tamaya/core/class-use/OSGIActivator.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.OSGIActivator (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.OSGIActivator (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.OSGIActivator (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.OSGIActivator (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">Class</a></li>
+<li><a href="../OSGIActivator.html" title="class in org.apache.tamaya.core">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/class-use/OSGIActivator.html" target="_top">Frames</a></li>
-<li><a href="OSGIActivator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.OSGIActivator" class="title">Uses of Class<br>org.apache.tamaya.core.OSGIActivator</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.OSGIActivator</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">Class</a></li>
+<li><a href="../OSGIActivator.html" title="class in org.apache.tamaya.core">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/class-use/OSGIActivator.html" target="_top">Frames</a></li>
-<li><a href="OSGIActivator.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/CoreConfiguration.html b/apidocs/stable/org/apache/tamaya/core/internal/CoreConfiguration.html
new file mode 100644
index 0000000..5ec3f60
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/CoreConfiguration.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>CoreConfiguration (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.CoreConfiguration class">
+<meta name="keywords" content="toBuilder()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CoreConfiguration (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoreConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal</a></div>
+<h2 title="Class CoreConfiguration" class="title">Class CoreConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.DefaultConfiguration</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.CoreConfiguration</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">CoreConfiguration</span>
+extends <a href="../../spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></pre>
+<div class="block">Default implementation of <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.tamaya.core.internal.CoreConfiguration">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.Configuration">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></h3>
+<code><a href="../../Configuration.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">CoreConfiguration</a></span>&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBuilder()">toBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder using this instance as its base.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.DefaultConfiguration">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.<a href="../../spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></h3>
+<code><a href="../../spisupport/DefaultConfiguration.html#convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)">convertValue</a>, <a href="../../spisupport/DefaultConfiguration.html#equals(java.lang.Object)">equals</a>, <a href="../../spisupport/DefaultConfiguration.html#evaluteRawValue(java.lang.String)">evaluteRawValue</a>, <a href="../../spisupport/DefaultConfiguration.html#get(java.lang.String)">get</a>, <a href="../../spisupport/DefaultConfiguration.html#get(java.lang.String,java.lang.Class)">get</a>, <a href="../../spisupport/DefaultConfiguration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a>, <a href="../../spisupport/DefaultConfiguration.html#getContext()">getContext</a>, <a href="../../spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a>, <a href="../../spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a>, <a href="../../spisupport/DefaultConfiguration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a>, <a href="../../spisupport/DefaultConfiguration.html#getProperties()">getProperties</a>, <a href="../../spisupport/DefaultConfiguration.html#getSnapshot(java.lang.Iterable)">getSnapshot</a>, <a href="../../spisupport/DefaultConfiguration.html#getValues(java.lang.String)">getValues</a>, <a href="../../spisupport/DefaultConfiguration.html#hashCode()">hashCode</a>, <a href="../../spisupport/DefaultConfiguration.html#query(org.apache.tamaya.ConfigQuery)">query</a>, <a href="../../spisupport/DefaultConfiguration.html#toString()">toString</a>, <a href="../../spisupport/DefaultConfiguration.html#with(org.apache.tamaya.ConfigOperator)">with</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.Configuration">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></h3>
+<code><a href="../../Configuration.html#adapt(java.util.function.Function)">adapt</a>, <a href="../../Configuration.html#get(java.lang.Iterable)">get</a>, <a href="../../Configuration.html#get(java.lang.Iterable,java.lang.Class)">get</a>, <a href="../../Configuration.html#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get</a>, <a href="../../Configuration.html#getOptional(java.lang.Iterable)">getOptional</a>, <a href="../../Configuration.html#getOptional(java.lang.Iterable,java.lang.Class)">getOptional</a>, <a href="../../Configuration.html#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="../../Configuration.html#getOptional(java.lang.String)">getOptional</a>, <a href="../../Configuration.html#getOptional(java.lang.String,java.lang.Class)">getOptional</a>, <a href="../../Configuration.html#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="../../Configuration.html#getOrDefault(java.lang.Iterable,java.lang.Class,T)">getOrDefault</a>, <a href="../../Configuration.html#getOrDefault(java.lang.Iterable,java.lang.String)">getOrDefault</a>, <a href="../../Configuration.html#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a>, <a href="../../Configuration.html#getSnapshot(java.lang.String...)">getSnapshot</a>, <a href="../../Configuration.html#map(java.util.function.UnaryOperator)">map</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CoreConfiguration</h4>
+<pre>public&nbsp;CoreConfiguration&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Creates a new builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The configuration Context to be used.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="toBuilder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toBuilder</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;toBuilder()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Configuration.html#toBuilder()">Configuration</a></code></span></div>
+<div class="block">Create a new builder using this instance as its base.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder, never null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoreConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/CoreConfigurationBuilder.html b/apidocs/stable/org/apache/tamaya/core/internal/CoreConfigurationBuilder.html
new file mode 100644
index 0000000..bf13605
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/CoreConfigurationBuilder.html
@@ -0,0 +1,425 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>CoreConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.CoreConfigurationBuilder class">
+<meta name="keywords" content="addCorePropertyConverters()">
+<meta name="keywords" content="build()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CoreConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoreConfigurationBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal</a></div>
+<h2 title="Class CoreConfigurationBuilder" class="title">Class CoreConfigurationBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.DefaultConfigurationBuilder</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.CoreConfigurationBuilder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">CoreConfigurationBuilder</span>
+extends <a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></pre>
+<div class="block">Default implementation of <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spisupport.DefaultConfigurationBuilder">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.tamaya.spisupport.<a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></h3>
+<code><a href="../../spisupport/DefaultConfigurationBuilder.html#built">built</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#metaDataProvider">metaDataProvider</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#propertyConverters">propertyConverters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#propertyFilters">propertyFilters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#propertySources">propertySources</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#serviceContext">serviceContext</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CoreConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.Configuration)">CoreConfigurationBuilder</a></span>&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">CoreConfigurationBuilder</a></span>&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addCorePropertyConverters()">addCorePropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.DefaultConfigurationBuilder">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.<a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></h3>
+<code><a href="../../spisupport/DefaultConfigurationBuilder.html#addCorePropertyResources(java.util.List)">addCorePropertyResources</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#addDefaultPropertyConverters()">addDefaultPropertyConverters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#addDefaultPropertyFilters()">addDefaultPropertyFilters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#addDefaultPropertySources()">addDefaultPropertySources</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#getClassLoader()">getClassLoader</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#getDefaultPropertyConverters()">getDefaultPropertyConverters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertyFilters()">getPropertyFilters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertySource(java.lang.String)">getPropertySource</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertySources()">getPropertySources</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#loadDefaults()">loadDefaults</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">setClassLoader</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">setMeta</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a>, <a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.ConfigurationBuilder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></h3>
+<code><a href="../../spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters</a>, <a href="../../spi/ConfigurationBuilder.html#addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">addPropertyFilters</a>, <a href="../../spi/ConfigurationBuilder.html#addPropertySources(org.apache.tamaya.spi.PropertySource...)">addPropertySources</a>, <a href="../../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters</a>, <a href="../../spi/ConfigurationBuilder.html#removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">removePropertyFilters</a>, <a href="../../spi/ConfigurationBuilder.html#removePropertySources(org.apache.tamaya.spi.PropertySource...)">removePropertySources</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CoreConfigurationBuilder</h4>
+<pre>public&nbsp;CoreConfigurationBuilder()</pre>
+<div class="block">Creates a new builder instance.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CoreConfigurationBuilder</h4>
+<pre>public&nbsp;CoreConfigurationBuilder&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="block">Creates a new builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the configuration to be used, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CoreConfigurationBuilder</h4>
+<pre>public&nbsp;CoreConfigurationBuilder&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the context to be used, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="addCorePropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addCorePropertyConverters</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addCorePropertyConverters()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../spisupport/DefaultConfigurationBuilder.html#addCorePropertyConverters()">addCorePropertyConverters</a></code>&nbsp;in class&nbsp;<code><a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;build()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../spisupport/DefaultConfigurationBuilder.html#build()">DefaultConfigurationBuilder</a></code></span></div>
+<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationBuilder.html#build()">build</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../spisupport/DefaultConfigurationBuilder.html#build()">build</a></code>&nbsp;in class&nbsp;<code><a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> configuration instance,
+         never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoreConfigurationBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/CoreConfigurationProvider.html b/apidocs/stable/org/apache/tamaya/core/internal/CoreConfigurationProvider.html
new file mode 100644
index 0000000..812ad7e
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/CoreConfigurationProvider.html
@@ -0,0 +1,483 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>CoreConfigurationProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.CoreConfigurationProvider class">
+<meta name="keywords" content="getConfiguration()">
+<meta name="keywords" content="createConfiguration()">
+<meta name="keywords" content="getConfigurationBuilder()">
+<meta name="keywords" content="setConfiguration()">
+<meta name="keywords" content="releaseConfiguration()">
+<meta name="keywords" content="isConfigurationSettable()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CoreConfigurationProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoreConfigurationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal</a></div>
+<h2 title="Class CoreConfigurationProvider" class="title">Class CoreConfigurationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.CoreConfigurationProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">CoreConfigurationProvider</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></pre>
+<div class="block">Implementation of the Configuration API. This class uses the current <a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> to evaluate the
+ chain of <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and <a href="../../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>
+ instance to evaluate the current Configuration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CoreConfigurationProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Access the current <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurationBuilder()">getConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConfigurationSettable(java.lang.ClassLoader)">isConfigurationSettable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Method that allows to determine if a new <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
+ programmatically.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">This method allows to release a <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for a classloader.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></span>&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">This method allows to replace the current <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.ConfigurationProviderSpi">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></h3>
+<code><a href="../../spi/ConfigurationProviderSpi.html#getConfiguration()">getConfiguration</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CoreConfigurationProvider</h4>
+<pre>public&nbsp;CoreConfigurationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getConfiguration(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)">ConfigurationProviderSpi</a></code></span></div>
+<div class="block">Access the current <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the classloader to be used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createConfiguration</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;createConfiguration&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">ConfigurationProviderSpi</a></code></span></div>
+<div class="block">Create a <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context. The configuration
+ created hereby must respect the artifacts provided by its context (property sources,
+ filters, converters, policies etc), including their ordering and significance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the context to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding configuration instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getConfigurationBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfigurationBuilder</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;getConfigurationBuilder()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html#getConfigurationBuilder()">ConfigurationProviderSpi</a></code></span></div>
+<div class="block">Creates a new <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html#getConfigurationBuilder()">getConfigurationBuilder</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setConfiguration&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">ConfigurationProviderSpi</a></code></span></div>
+<div class="block">This method allows to replace the current <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+ instance. This can be used to update the configuration with a new one, e.g. because some of the
+ data has changed and must be updated. It is the responsibility of the ConfigurationProvider to trigger
+ corresponding update events for the current <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the new Configuration to be applied.</dd>
+<dd><code>classLoader</code> - the classloader to be used.</dd>
+</dl>
+</li>
+</ul>
+<a id="releaseConfiguration(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseConfiguration</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;releaseConfiguration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html#releaseConfiguration(java.lang.ClassLoader)">ConfigurationProviderSpi</a></code></span></div>
+<div class="block">This method allows to release a <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for a classloader.
+ This can be used to refresh the configuration with a new one, e.g. because some of the
+ data has changed and must be updated.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classloader</code> - the classloader to be used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration instance released, or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isConfigurationSettable(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isConfigurationSettable</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isConfigurationSettable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html#isConfigurationSettable(java.lang.ClassLoader)">ConfigurationProviderSpi</a></code></span></div>
+<div class="block">Method that allows to determine if a new <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
+ programmatically.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ConfigurationProviderSpi.html#isConfigurationSettable(java.lang.ClassLoader)">isConfigurationSettable</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true, if <a href="../../spi/ConfigurationProviderSpi.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"><code>ConfigurationProviderSpi.setConfiguration(org.apache.tamaya.Configuration, ClassLoader)</code></a> is supported
+ by the current implementation.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../spi/ConfigurationProviderSpi.html#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"><code>ConfigurationProviderSpi.setConfiguration(org.apache.tamaya.Configuration, ClassLoader classloader)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoreConfigurationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceContext.html b/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceContext.html
index 5d4b739..69a64b8 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceContext.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceContext.html
@@ -1,51 +1,69 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>OSGIServiceContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>OSGIServiceContext (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.OSGIServiceContext class">
 <meta name="keywords" content="isInitialized()">
+<meta name="keywords" content="getClassLoader()">
+<meta name="keywords" content="init()">
 <meta name="keywords" content="ordinal()">
 <meta name="keywords" content="getService()">
 <meta name="keywords" content="create()">
 <meta name="keywords" content="getServices()">
 <meta name="keywords" content="getResources()">
 <meta name="keywords" content="getResource()">
+<meta name="keywords" content="register()">
+<meta name="keywords" content="reset()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OSGIServiceContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="OSGIServiceContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/OSGIServiceContext.html">Use</a></li>
@@ -56,16 +74,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/OSGIServiceContext.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -78,12 +94,15 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
@@ -94,18 +113,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal</a></div>
 <h2 title="Class OSGIServiceContext" class="title">Class OSGIServiceContext</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.OSGIServiceContext</li>
@@ -117,13 +145,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></dd>
+<dd><code><a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code>, <code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">OSGIServiceContext</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></pre>
 <div class="block">ServiceContext implementation based on OSGI Service mechanisms.</div>
 </li>
 </ul>
@@ -131,85 +158,167 @@
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.ServiceContext">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></h3>
+<code><a href="../../spi/ServiceContext.html#PRIORITY_ANNOTATION_AVAILABLE">PRIORITY_ANNOTATION_AVAILABLE</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#OSGIServiceContext-org.apache.tamaya.core.internal.OSGIServiceLoader-">OSGIServiceContext</a></span>(<a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a>&nbsp;osgiServiceLoader)</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.core.internal.OSGIServiceLoader)">OSGIServiceContext</a></span>&#8203;(<a href="OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a>&nbsp;osgiServiceLoader)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#create-java.lang.Class-">create</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</code>
-<div class="block">Factory method to create a type, hereby a new instance is created on each access.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class,java.util.function.Supplier)">create</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">getResource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)</code>
-<div class="block">Loads a resource from the current runtime context.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassLoader()">getClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the currently assigned cassloader instance.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">getResources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)</code>
-<div class="block">Loads resources from the current runtime context.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResource(java.lang.String)">getResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Loads a resource from the current runtime context.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#getService-java.lang.Class-">getService</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</code>
-<div class="block">Access a service singleton via its type.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResources(java.lang.String)">getResources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Loads resources from the current runtime context.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#getServices-java.lang.Class-">getServices</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</code>
-<div class="block">Access a list current services, given its type.</div>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getService(java.lang.Class,java.util.function.Supplier)">getService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Access a service singleton via its type.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#isInitialized--">isInitialized</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServices(java.lang.Class,java.util.function.Supplier)">getServices</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Access a createList current services, given its type.</div>
+</td>
 </tr>
 <tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(java.lang.ClassLoader)">init</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Initializes this instance with the classloader to be used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInitialized()">isInitialized</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#ordinal--">ordinal</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ordinal()">ordinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the ordinal of the ServiceContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.util.List,boolean)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;instances,
+        boolean&nbsp;force)</code></th>
+<td class="colLast">
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,T,boolean)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+        T&nbsp;instance,
+        boolean&nbsp;force)</code></th>
+<td class="colLast">
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Resets the current service context, removing all loaded services.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.ServiceContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></h3>
+<code><a href="../../spi/ServiceContext.html#create(java.lang.Class)">create</a>, <a href="../../spi/ServiceContext.html#getService(java.lang.Class)">getService</a>, <a href="../../spi/ServiceContext.html#getServices(java.lang.Class)">getServices</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -217,186 +326,305 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="OSGIServiceContext-org.apache.tamaya.core.internal.OSGIServiceLoader-">
+<a id="&lt;init&gt;(org.apache.tamaya.core.internal.OSGIServiceLoader)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>OSGIServiceContext</h4>
-<pre>public&nbsp;OSGIServiceContext(<a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a>&nbsp;osgiServiceLoader)</pre>
+<pre>public&nbsp;OSGIServiceContext&#8203;(<a href="OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a>&nbsp;osgiServiceLoader)</pre>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="isInitialized--">
+<a id="isInitialized()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;isInitialized()</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isInitialized()</pre>
 </li>
 </ul>
-<a name="ordinal--">
+<a id="getClassLoader()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClassLoader</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getClassLoader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ClassloaderAware.html#getClassLoader()">ClassloaderAware</a></code></span></div>
+<div class="block">Get the currently assigned cassloader instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ClassloaderAware.html#getClassLoader()">getClassLoader</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the classloader, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="init(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;init&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ClassloaderAware.html#init(java.lang.ClassLoader)">ClassloaderAware</a></code></span></div>
+<div class="block">Initializes this instance with the classloader to be used.
+ This method is called by the implementation when the instance is loaded
+ through the <a href="../../spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><code>ServiceContextManager</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ClassloaderAware.html#init(java.lang.ClassLoader)">init</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader, not not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="ordinal()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>ordinal</h4>
-<pre>public&nbsp;int&nbsp;ordinal()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;ordinal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#ordinal()">ServiceContext</a></code></span></div>
+<div class="block">Get the ordinal of the ServiceContext.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#ordinal--">ordinal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dd><code><a href="../../spi/ServiceContext.html#ordinal()">ordinal</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>ordinal of the ServiceContext. The one with the highest ordinal will be taken.</dd>
 </dl>
 </li>
 </ul>
-<a name="getService-java.lang.Class-">
+<a id="getService(java.lang.Class,java.util.function.Supplier)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getService</h4>
-<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getService(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getService-java.lang.Class-">ServiceContext</a></code></span></div>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">ServiceContext</a></code></span></div>
 <div class="block">Access a service singleton via its type.
  If multiple implementations for the very serviceType exist then
- the one with the highest <a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation"><code>Priority</code></a> will be used.</div>
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getService-java.lang.Class-">getService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dd><code><a href="../../spi/ServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">getService</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the service type.</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to be used, if no services could be evaluated. If null,
+                 an empty collection is returned, when no services
+                 could be located.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The instance to be used, or <code>null</code></dd>
 </dl>
 </li>
 </ul>
-<a name="create-java.lang.Class-">
+<a id="create(java.lang.Class,java.util.function.Supplier)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>create</h4>
-<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;create(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#create-java.lang.Class-">ServiceContext</a></code></span></div>
-<div class="block">Factory method to create a type, hereby a new instance is created on each access.
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;create&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">ServiceContext</a></code></span></div>
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.
  If multiple implementations for the very serviceType exist then
- the one with the highest <a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation"><code>Priority</code></a> will be used as the base
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used as the base
  for creating subsequent instances.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#create-java.lang.Class-">create</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dd><code><a href="../../spi/ServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">create</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the service type.</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to create a new service, if no service could be autodetected.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The new instance to be used, or <code>null</code></dd>
 </dl>
 </li>
 </ul>
-<a name="getServices-java.lang.Class-">
+<a id="getServices(java.lang.Class,java.util.function.Supplier)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;getServices(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getServices-java.lang.Class-">ServiceContext</a></code></span></div>
-<div class="block">Access a list current services, given its type. The bootstrap mechanism should
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;getServices&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;supplier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#getServices(java.lang.Class,java.util.function.Supplier)">ServiceContext</a></code></span></div>
+<div class="block">Access a createList current services, given its type. The bootstrap mechanism should
  order the instance for precedence, hereby the most significant should be
- first in order.</div>
+ first in order. If no instances could be found, the instances supplied by the
+ supplier given are registered and used.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getServices-java.lang.Class-">getServices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dd><code><a href="../../spi/ServiceContext.html#getServices(java.lang.Class,java.util.function.Supplier)">getServices</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
-<dd><code>T</code> - the type of the list element returned by this method</dd>
+<dd><code>T</code> - the type of the createList element returned by this method</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to be used, if no services could be evaluated. If null,
+                 an empty collection is returned, when no services
+                 could be located.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The instance to be used, never <code>null</code></dd>
 </dl>
 </li>
 </ul>
-<a name="getResources-java.lang.String-java.lang.ClassLoader-">
+<a id="getResources(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getResources</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;&nbsp;getResources(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)
-                              throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">ServiceContext</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;&nbsp;getResources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#getResources(java.lang.String)">ServiceContext</a></code></span></div>
 <div class="block">Loads resources from the current runtime context. This method allows to use runtime
  specific code to load resources, e.g. within OSGI environments.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">getResources</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dd><code><a href="../../spi/ServiceContext.html#getResources(java.lang.String)">getResources</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>resource</code> - the resource, not <code>null</code>.</dd>
-<dd><code>cl</code> - the desired classloader context, if null, the current thread context classloader is used.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the resources found</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="getResource-java.lang.String-java.lang.ClassLoader-">
+<a id="getResource(java.lang.String)">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getResource</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&nbsp;getResource(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-                       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">ServiceContext</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;getResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#getResource(java.lang.String)">ServiceContext</a></code></span></div>
 <div class="block">Loads a resource from the current runtime context. This method allows to use runtime
  specific code to load a resource, e.g. within OSGI environments.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dd><code><a href="../../spi/ServiceContext.html#getResource(java.lang.String)">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>resource</code> - the resource, not <code>null</code>.</dd>
-<dd><code>cl</code> - the desired classloader context, if null, the current thread context classloader is used.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the resource found, or <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
+<a id="register(java.lang.Class,java.lang.Object,boolean)">
+<!--   -->
+</a><a id="register(java.lang.Class,T,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                      T&nbsp;instance,
+                      boolean&nbsp;force)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#register(java.lang.Class,T,boolean)">ServiceContext</a></code></span></div>
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ServiceContext.html#register(java.lang.Class,T,boolean)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - thy type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the type to register, not null.</dd>
+<dd><code>instance</code> - the instance, not null.</dd>
+<dd><code>force</code> - if true, any existing instance will be replaced.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instance registered or already present.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.util.List,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;instances,
+                            boolean&nbsp;force)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#register(java.lang.Class,java.util.List,boolean)">ServiceContext</a></code></span></div>
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ServiceContext.html#register(java.lang.Class,java.util.List,boolean)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - thy type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the type to register, not null.</dd>
+<dd><code>instances</code> - the instancea, not null.</dd>
+<dd><code>force</code> - if true, any existing instances will be replaced.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instances registered or already present.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;reset()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ServiceContext.html#reset()">ServiceContext</a></code></span></div>
+<div class="block">Resets the current service context, removing all loaded services. This implicitly triggers a new load
+ of the service context.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ServiceContext.html#reset()">reset</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+</dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
+</li>
+</ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/OSGIServiceContext.html">Use</a></li>
@@ -407,16 +635,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/OSGIServiceContext.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -429,12 +649,15 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
@@ -445,10 +668,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceLoader.html b/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceLoader.html
index 30f7f06..a407f33 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceLoader.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/OSGIServiceLoader.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>OSGIServiceLoader (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>OSGIServiceLoader (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.OSGIServiceLoader class">
 <meta name="keywords" content="getBundleContext()">
 <meta name="keywords" content="getResourceBundles()">
 <meta name="keywords" content="bundleChanged()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OSGIServiceLoader (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="OSGIServiceLoader (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/OSGIServiceLoader.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/OSGIServiceLoader.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceLoader.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal</a></div>
 <h2 title="Class OSGIServiceLoader" class="title">Class OSGIServiceLoader</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.OSGIServiceLoader</li>
@@ -113,14 +137,14 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a>, org.osgi.framework.BundleListener</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util" class="externalLink">EventListener</a></code>, <code>org.osgi.framework.BundleListener</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">OSGIServiceLoader</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
 implements org.osgi.framework.BundleListener</pre>
-<div class="block">An bundle listener that registers services defined in META-INF/services, when a bundle is starting.</div>
+<div class="block">A bundle listener that registers services defined in META-INF/services, when
+ a bundle is starting.</div>
 <dl>
 <dt><span class="simpleTagLabel">Author:</span></dt>
 <dd>anatole@apache.org</dd>
@@ -132,56 +156,66 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html#OSGIServiceLoader-org.osgi.framework.BundleContext-">OSGIServiceLoader</a></span>(org.osgi.framework.BundleContext&nbsp;context)</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.osgi.framework.BundleContext)">OSGIServiceLoader</a></span>&#8203;(org.osgi.framework.BundleContext&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html#bundleChanged-org.osgi.framework.BundleEvent-">bundleChanged</a></span>(org.osgi.framework.BundleEvent&nbsp;bundleEvent)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#bundleChanged(org.osgi.framework.BundleEvent)">bundleChanged</a></span>&#8203;(org.osgi.framework.BundleEvent&nbsp;bundleEvent)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>org.osgi.framework.BundleContext</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html#getBundleContext--">getBundleContext</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBundleContext()">getBundleContext</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.osgi.framework.Bundle&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html#getResourceBundles--">getResourceBundles</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;org.osgi.framework.Bundle&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceBundles()">getResourceBundles</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -189,53 +223,56 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="OSGIServiceLoader-org.osgi.framework.BundleContext-">
+<a id="&lt;init&gt;(org.osgi.framework.BundleContext)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>OSGIServiceLoader</h4>
-<pre>public&nbsp;OSGIServiceLoader(org.osgi.framework.BundleContext&nbsp;context)</pre>
+<pre>public&nbsp;OSGIServiceLoader&#8203;(org.osgi.framework.BundleContext&nbsp;context)</pre>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getBundleContext--">
+<a id="getBundleContext()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getBundleContext</h4>
-<pre>public&nbsp;org.osgi.framework.BundleContext&nbsp;getBundleContext()</pre>
+<pre class="methodSignature">public&nbsp;org.osgi.framework.BundleContext&nbsp;getBundleContext()</pre>
 </li>
 </ul>
-<a name="getResourceBundles--">
+<a id="getResourceBundles()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getResourceBundles</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.osgi.framework.Bundle&gt;&nbsp;getResourceBundles()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;org.osgi.framework.Bundle&gt;&nbsp;getResourceBundles()</pre>
 </li>
 </ul>
-<a name="bundleChanged-org.osgi.framework.BundleEvent-">
+<a id="bundleChanged(org.osgi.framework.BundleEvent)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>bundleChanged</h4>
-<pre>public&nbsp;void&nbsp;bundleChanged(org.osgi.framework.BundleEvent&nbsp;bundleEvent)</pre>
+<pre class="methodSignature">public&nbsp;void&nbsp;bundleChanged&#8203;(org.osgi.framework.BundleEvent&nbsp;bundleEvent)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>bundleChanged</code>&nbsp;in interface&nbsp;<code>org.osgi.framework.BundleListener</code></dd>
@@ -244,21 +281,25 @@
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/OSGIServiceLoader.html">Use</a></li>
@@ -269,16 +310,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/OSGIServiceLoader.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceLoader.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -291,6 +324,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -307,10 +343,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfiguration.html b/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfiguration.html
new file mode 100644
index 0000000..f07eb9b
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfiguration.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.CoreConfiguration (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.CoreConfiguration (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.CoreConfiguration" class="title">Uses of Class<br>org.apache.tamaya.core.internal.CoreConfiguration</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.CoreConfiguration</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfigurationBuilder.html b/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfigurationBuilder.html
new file mode 100644
index 0000000..f5a9fa8
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfigurationBuilder.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.CoreConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.CoreConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.CoreConfigurationBuilder" class="title">Uses of Class<br>org.apache.tamaya.core.internal.CoreConfigurationBuilder</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.CoreConfigurationBuilder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfigurationProvider.html b/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfigurationProvider.html
new file mode 100644
index 0000000..35be972
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/class-use/CoreConfigurationProvider.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.CoreConfigurationProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.CoreConfigurationProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.CoreConfigurationProvider" class="title">Uses of Class<br>org.apache.tamaya.core.internal.CoreConfigurationProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.CoreConfigurationProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceContext.html b/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceContext.html
index af4a221..2133f9a 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceContext.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceContext.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.OSGIServiceContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.OSGIServiceContext (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.OSGIServiceContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.OSGIServiceContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li><a href="../OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/class-use/OSGIServiceContext.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.OSGIServiceContext" class="title">Uses of Class<br>org.apache.tamaya.core.internal.OSGIServiceContext</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.OSGIServiceContext</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li><a href="../OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/class-use/OSGIServiceContext.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html b/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html
index da2eb45..1660a01 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.OSGIServiceLoader (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.OSGIServiceLoader (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.OSGIServiceLoader (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.OSGIServiceLoader (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li><a href="../OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceLoader.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,65 +76,88 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.OSGIServiceLoader" class="title">Uses of Class<br>org.apache.tamaya.core.internal.OSGIServiceLoader</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a> in <a href="../../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a> in <a href="../package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html#OSGIServiceContext-org.apache.tamaya.core.internal.OSGIServiceLoader-">OSGIServiceContext</a></span>(<a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a>&nbsp;osgiServiceLoader)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../OSGIServiceContext.html#%3Cinit%3E(org.apache.tamaya.core.internal.OSGIServiceLoader)">OSGIServiceContext</a></span>&#8203;(<a href="../OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a>&nbsp;osgiServiceLoader)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
+<li><a href="../OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -131,16 +166,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html" target="_top">Frames</a></li>
-<li><a href="OSGIServiceLoader.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -153,11 +180,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/BigDecimalConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/BigDecimalConverter.html
index 9c191ed..b17344a 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/BigDecimalConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/BigDecimalConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>BigDecimalConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>BigDecimalConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.BigDecimalConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BigDecimalConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="BigDecimalConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BigDecimalConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" target="_top">Frames</a></li>
-<li><a href="BigDecimalConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class BigDecimalConverter" class="title">Class BigDecimalConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.BigDecimalConverter</li>
@@ -113,13 +137,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math">BigDecimal</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink">BigDecimal</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">BigDecimalConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math">BigDecimal</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink">BigDecimal</a>&gt;</pre>
 <div class="block">Converter, converting from String to BigDecimal, the supported format is one of the following:
  <ul>
      <li>232573527352.76352753</li>
@@ -136,59 +159,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#BigDecimalConverter--">BigDecimalConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BigDecimalConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math">BigDecimal</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink">BigDecimal</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -196,12 +229,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="BigDecimalConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -212,81 +246,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math">BigDecimal</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                          <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink">BigDecimal</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                          <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math">BigDecimal</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink">BigDecimal</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BigDecimalConverter.html">Use</a></li>
@@ -297,16 +338,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" target="_top">Frames</a></li>
-<li><a href="BigDecimalConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -319,6 +352,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -335,10 +371,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/BigIntegerConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/BigIntegerConverter.html
index ce2c341..14d871e 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/BigIntegerConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/BigIntegerConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>BigIntegerConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>BigIntegerConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.BigIntegerConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BigIntegerConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="BigIntegerConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BigIntegerConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="BigIntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class BigIntegerConverter" class="title">Class BigIntegerConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.BigIntegerConverter</li>
@@ -113,13 +137,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math" class="externalLink">BigInteger</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">BigIntegerConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math" class="externalLink">BigInteger</a>&gt;</pre>
 <div class="block">Converter, converting from String to BigInteger, the supported format is one of the following:
  <ul>
      <li>0xFFFFFF</li>
@@ -136,59 +159,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#BigIntegerConverter--">BigIntegerConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BigIntegerConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math" class="externalLink">BigInteger</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -196,12 +229,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="BigIntegerConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -212,81 +246,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                          <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math" class="externalLink">BigInteger</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                          <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math" class="externalLink">BigInteger</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BigIntegerConverter.html">Use</a></li>
@@ -297,16 +338,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="BigIntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -319,6 +352,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -335,10 +371,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/BooleanConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/BooleanConverter.html
index 24bb018..dfc79ea 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/BooleanConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/BooleanConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>BooleanConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>BooleanConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.BooleanConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BooleanConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="BooleanConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BooleanConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/BooleanConverter.html" target="_top">Frames</a></li>
-<li><a href="BooleanConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class BooleanConverter" class="title">Class BooleanConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.BooleanConverter</li>
@@ -113,13 +137,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">BooleanConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a>&gt;</pre>
 <div class="block">Converter, converting from String to Boolean.</div>
 </li>
 </ul>
@@ -128,59 +151,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html#BooleanConverter--">BooleanConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BooleanConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -188,12 +221,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="BooleanConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -204,81 +238,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BooleanConverter.html">Use</a></li>
@@ -289,16 +330,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/BooleanConverter.html" target="_top">Frames</a></li>
-<li><a href="BooleanConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -311,6 +344,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -327,10 +363,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/ByteConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/ByteConverter.html
index afcad73..c51278e 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/ByteConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/ByteConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ByteConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ByteConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.ByteConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ByteConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ByteConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ByteConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/ByteConverter.html" target="_top">Frames</a></li>
-<li><a href="ByteConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class ByteConverter" class="title">Class ByteConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.ByteConverter</li>
@@ -113,23 +137,22 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">ByteConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a>&gt;</pre>
 <div class="block">Converter, converting from String to Byte, the supported format is one of the following:
  <ul>
-     <li>123 (byte value)</li>
-     <li>0xFF (byte value)</li>
-     <li>0XDF (byte value)</li>
-     <li>0D1 (byte value)</li>
-     <li>-123 (byte value)</li>
-     <li>-0xFF (byte value)</li>
-     <li>-0XDF (byte value)</li>
-     <li>-0D1 (byte value)</li>
+     <li>123 (byte createValue)</li>
+     <li>0xFF (byte createValue)</li>
+     <li>0XDF (byte createValue)</li>
+     <li>0D1 (byte createValue)</li>
+     <li>-123 (byte createValue)</li>
+     <li>-0xFF (byte createValue)</li>
+     <li>-0XDF (byte createValue)</li>
+     <li>-0D1 (byte createValue)</li>
      <li>MIN_VALUE (ignoring case)</li>
      <li>MIN (ignoring case)</li>
      <li>MAX_VALUE (ignoring case)</li>
@@ -142,59 +165,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html#ByteConverter--">ByteConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ByteConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -202,12 +235,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ByteConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -218,81 +252,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                    <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                    <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ByteConverter.html">Use</a></li>
@@ -303,16 +344,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/ByteConverter.html" target="_top">Frames</a></li>
-<li><a href="ByteConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -325,6 +358,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -341,10 +377,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/CharConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/CharConverter.html
index 7966896..24c7a56 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/CharConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/CharConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>CharConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>CharConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.CharConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CharConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="CharConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/CharConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/CharConverter.html" target="_top">Frames</a></li>
-<li><a href="CharConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class CharConverter" class="title">Class CharConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.CharConverter</li>
@@ -113,20 +137,19 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">CharConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a>&gt;</pre>
 <div class="block">Converter, converting from String to Character, the supported format is one of the following:
  <ul>
      <li>'a'</li>
-     <li>123 (byte value)</li>
-     <li>0xFF (byte value)</li>
-     <li>0XDF (byte value)</li>
-     <li>0D1 (byte value)</li>
+     <li>123 (byte createValue)</li>
+     <li>0xFF (byte createValue)</li>
+     <li>0XDF (byte createValue)</li>
+     <li>0D1 (byte createValue)</li>
  </ul></div>
 </li>
 </ul>
@@ -135,59 +158,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html#CharConverter--">CharConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CharConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -195,12 +228,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="CharConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -211,81 +245,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                         <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                         <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/CharConverter.html">Use</a></li>
@@ -296,16 +337,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/CharConverter.html" target="_top">Frames</a></li>
-<li><a href="CharConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -318,6 +351,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -334,10 +370,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/ClassConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/ClassConverter.html
index 4fd7440..01a6bb7 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/ClassConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/ClassConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ClassConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ClassConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.ClassConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClassConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ClassConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ClassConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/ClassConverter.html" target="_top">Frames</a></li>
-<li><a href="ClassConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class ClassConverter" class="title">Class ClassConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.ClassConverter</li>
@@ -113,13 +137,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">ClassConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</pre>
 <div class="block">Converter, converting from String to Class, hereby using the following classloaders:
  <ul>
      <li>The current ThreadContext ClassLoader</li>
@@ -133,59 +156,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html#ClassConverter--">ClassConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClassConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -193,12 +226,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ClassConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -209,81 +243,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                        <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                        <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ClassConverter.html">Use</a></li>
@@ -294,16 +335,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/ClassConverter.html" target="_top">Frames</a></li>
-<li><a href="ClassConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -316,6 +349,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -332,10 +368,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/CurrencyConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/CurrencyConverter.html
index 72504a3..e2dff96 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/CurrencyConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/CurrencyConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>CurrencyConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>CurrencyConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.CurrencyConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CurrencyConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="CurrencyConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/CurrencyConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/CurrencyConverter.html" target="_top">Frames</a></li>
-<li><a href="CurrencyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class CurrencyConverter" class="title">Class CurrencyConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.CurrencyConverter</li>
@@ -113,17 +137,16 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util">Currency</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util" class="externalLink">Currency</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">CurrencyConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util">Currency</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util" class="externalLink">Currency</a>&gt;</pre>
 <div class="block">Converter, converting from String to Currency, the supported format is one of the following:
  <ul>
      <li>CHF (currency code)</li>
-     <li>123 (numeric currency value &gt;
+     <li>123 (numeric currency createValue &gt;
      = 0)</li>
      <li>DE (ISO 2-digit country)</li>
      <li>de_DE, de_DE_123 (Locale)</li>
@@ -135,59 +158,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html#CurrencyConverter--">CurrencyConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CurrencyConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util">Currency</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util" class="externalLink">Currency</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -195,12 +228,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="CurrencyConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -211,81 +245,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util">Currency</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                        <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util" class="externalLink">Currency</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                        <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util">Currency</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util" class="externalLink">Currency</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/CurrencyConverter.html">Use</a></li>
@@ -296,16 +337,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/CurrencyConverter.html" target="_top">Frames</a></li>
-<li><a href="CurrencyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -318,6 +351,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -334,10 +370,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/DoubleConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/DoubleConverter.html
index 7113b09..6886106 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/DoubleConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/DoubleConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>DoubleConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>DoubleConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.DoubleConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DoubleConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="DoubleConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/DoubleConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/DoubleConverter.html" target="_top">Frames</a></li>
-<li><a href="DoubleConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class DoubleConverter" class="title">Class DoubleConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.DoubleConverter</li>
@@ -113,20 +137,23 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">DoubleConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;</pre>
 <div class="block">Converter, converting from String to Double, using the Java number syntax:
- (-)?[0-9]*\.[0-9]*. In case of error the value given also is tried being parsed as integral number using
- <a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><code>LongConverter</code></a>. Additionally the following values are supported:
+ (-)?[0-9]*\.[0-9]*. In case of error the createValue given also is tried being parsed as integral number using
+ <a href="LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><code>LongConverter</code></a>. Additionally the following values are supported:
  <ul>
  <li>NaN (ignoring case)</li>
  <li>POSITIVE_INFINITY (ignoring case)</li>
  <li>NEGATIVE_INFINITY (ignoring case)</li>
+ <li>MIN_VALUE (ignoring case)</li>
+ <li>MIN (ignoring case)</li>
+ <li>MAX_VALUE (ignoring case)</li>
+ <li>MAX (ignoring case)</li>
  </ul></div>
 </li>
 </ul>
@@ -135,59 +162,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html#DoubleConverter--">DoubleConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DoubleConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -195,12 +232,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="DoubleConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -211,81 +249,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                      <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                      <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/DoubleConverter.html">Use</a></li>
@@ -296,16 +341,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/DoubleConverter.html" target="_top">Frames</a></li>
-<li><a href="DoubleConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -318,6 +355,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -334,10 +374,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/DurationConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/DurationConverter.html
new file mode 100644
index 0000000..0b94711
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/DurationConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DurationConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.DurationConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DurationConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DurationConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class DurationConverter" class="title">Class DurationConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.DurationConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DurationConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&gt;</pre>
+<div class="block">Converter, converting from String to Boolean.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DurationConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DurationConverter</h4>
+<pre>public&nbsp;DurationConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                        <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DurationConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/FileConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/FileConverter.html
index 6b37e25..e1cfee4 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/FileConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/FileConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>FileConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FileConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.FileConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FileConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="FileConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/FileConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/FileConverter.html" target="_top">Frames</a></li>
-<li><a href="FileConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class FileConverter" class="title">Class FileConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.FileConverter</li>
@@ -113,14 +137,13 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">FileConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</pre>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&gt;</pre>
+<div class="block">Converter, converting from String to File, using new File(createValue).</div>
 </li>
 </ul>
 </div>
@@ -128,59 +151,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html#FileConverter--">FileConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">FileConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -188,12 +221,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="FileConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -204,81 +238,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                    <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                    <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/FileConverter.html">Use</a></li>
@@ -289,16 +330,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/FileConverter.html" target="_top">Frames</a></li>
-<li><a href="FileConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -311,6 +344,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -327,10 +363,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/FloatConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/FloatConverter.html
index b8fe694..fb379b1 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/FloatConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/FloatConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>FloatConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FloatConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.FloatConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FloatConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="FloatConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/FloatConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/FloatConverter.html" target="_top">Frames</a></li>
-<li><a href="FloatConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class FloatConverter" class="title">Class FloatConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.FloatConverter</li>
@@ -113,20 +137,23 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">FloatConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a>&gt;</pre>
 <div class="block">Converter, converting from String to Float, using the Java number syntax:
- (-)?[0-9]*\.[0-9]*. In case of error the value given also is tried being parsed as integral number using
- <a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><code>LongConverter</code></a>. Additionally the following values are supported:
+ (-)?[0-9]*\.[0-9]*. In case of error the createValue given also is tried being parsed as integral number using
+ <a href="LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><code>LongConverter</code></a>. Additionally the following values are supported:
  <ul>
  <li>NaN (ignoring case)</li>
  <li>POSITIVE_INFINITY (ignoring case)</li>
  <li>NEGATIVE_INFINITY (ignoring case)</li>
+ <li>MIN_VALUE (ignoring case)</li>
+ <li>MIN (ignoring case)</li>
+ <li>MAX_VALUE (ignoring case)</li>
+ <li>MAX (ignoring case)</li>
  </ul></div>
 </li>
 </ul>
@@ -135,59 +162,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html#FloatConverter--">FloatConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">FloatConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -195,12 +232,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="FloatConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -211,81 +249,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                     <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                     <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/FloatConverter.html">Use</a></li>
@@ -296,16 +341,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/FloatConverter.html" target="_top">Frames</a></li>
-<li><a href="FloatConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -318,6 +355,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -334,10 +374,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/InstantConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/InstantConverter.html
new file mode 100644
index 0000000..da0f95c
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/InstantConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>InstantConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.InstantConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InstantConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InstantConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class InstantConverter" class="title">Class InstantConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.InstantConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html?is-external=true" title="class or interface in java.time" class="externalLink">Instant</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">InstantConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html?is-external=true" title="class or interface in java.time" class="externalLink">Instant</a>&gt;</pre>
+<div class="block">Converter, converting from String to Instant.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">InstantConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html?is-external=true" title="class or interface in java.time" class="externalLink">Instant</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InstantConverter</h4>
+<pre>public&nbsp;InstantConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html?is-external=true" title="class or interface in java.time" class="externalLink">Instant</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html?is-external=true" title="class or interface in java.time" class="externalLink">Instant</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InstantConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/IntegerConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/IntegerConverter.html
index f22a845..4fbd8e0 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/IntegerConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/IntegerConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>IntegerConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>IntegerConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.IntegerConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="IntegerConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="IntegerConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/IntegerConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/IntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="IntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class IntegerConverter" class="title">Class IntegerConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.IntegerConverter</li>
@@ -113,23 +137,22 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">IntegerConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</pre>
 <div class="block">Converter, converting from String to Integer, the supported format is one of the following:
  <ul>
-     <li>123 (byte value)</li>
-     <li>0xFF (byte value)</li>
-     <li>0XDF (byte value)</li>
-     <li>0D1 (byte value)</li>
-     <li>-123 (byte value)</li>
-     <li>-0xFF (byte value)</li>
-     <li>-0XDF (byte value)</li>
-     <li>-0D1 (byte value)</li>
+     <li>123 (byte createValue)</li>
+     <li>0xFF (byte createValue)</li>
+     <li>0XDF (byte createValue)</li>
+     <li>0D1 (byte createValue)</li>
+     <li>-123 (byte createValue)</li>
+     <li>-0xFF (byte createValue)</li>
+     <li>-0XDF (byte createValue)</li>
+     <li>-0D1 (byte createValue)</li>
      <li>MIN_VALUE (ignoring case)</li>
      <li>MIN (ignoring case)</li>
      <li>MAX_VALUE (ignoring case)</li>
@@ -142,59 +165,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html#IntegerConverter--">IntegerConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">IntegerConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -202,12 +235,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="IntegerConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -218,81 +252,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/IntegerConverter.html">Use</a></li>
@@ -303,16 +344,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/IntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="IntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -325,6 +358,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -341,10 +377,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalDateConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalDateConverter.html
new file mode 100644
index 0000000..063f4dc
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalDateConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>LocalDateConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.LocalDateConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalDateConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalDateConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class LocalDateConverter" class="title">Class LocalDateConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.LocalDateConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDate</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">LocalDateConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDate</a>&gt;</pre>
+<div class="block">Converter, converting from String to LocalDate.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LocalDateConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDate</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalDateConverter</h4>
+<pre>public&nbsp;LocalDateConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDate</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                         <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDate</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalDateConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html
new file mode 100644
index 0000000..1c0b52b
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>LocalDateTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.LocalDateTimeConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalDateTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalDateTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class LocalDateTimeConverter" class="title">Class LocalDateTimeConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.LocalDateTimeConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDateTime</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">LocalDateTimeConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDateTime</a>&gt;</pre>
+<div class="block">Converter, converting from String to LocalDateTime.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LocalDateTimeConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDateTime</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalDateTimeConverter</h4>
+<pre>public&nbsp;LocalDateTimeConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDateTime</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                             <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDateTime</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalDateTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalTimeConverter.html
new file mode 100644
index 0000000..b2f4ea9
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/LocalTimeConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>LocalTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.LocalTimeConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class LocalTimeConverter" class="title">Class LocalTimeConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.LocalTimeConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalTime</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">LocalTimeConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalTime</a>&gt;</pre>
+<div class="block">Converter, converting from String to LocalTime.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LocalTimeConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalTime</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalTimeConverter</h4>
+<pre>public&nbsp;LocalTimeConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalTime</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                         <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalTime</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/LongConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/LongConverter.html
index 54908a6..24f29b1 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/LongConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/LongConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>LongConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>LongConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.LongConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LongConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="LongConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/LongConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/LongConverter.html" target="_top">Frames</a></li>
-<li><a href="LongConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class LongConverter" class="title">Class LongConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.LongConverter</li>
@@ -113,23 +137,22 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">LongConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&gt;</pre>
 <div class="block">Converter, converting from String to Long, the supported format is one of the following:
  <ul>
-     <li>123 (byte value)</li>
-     <li>0xFF (byte value)</li>
-     <li>0XDF (byte value)</li>
-     <li>0D1 (byte value)</li>
-     <li>-123 (byte value)</li>
-     <li>-0xFF (byte value)</li>
-     <li>-0XDF (byte value)</li>
-     <li>-0D1 (byte value)</li>
+     <li>123 (byte createValue)</li>
+     <li>0xFF (byte createValue)</li>
+     <li>0XDF (byte createValue)</li>
+     <li>0D1 (byte createValue)</li>
+     <li>-123 (byte createValue)</li>
+     <li>-0xFF (byte createValue)</li>
+     <li>-0XDF (byte createValue)</li>
+     <li>-0D1 (byte createValue)</li>
      <li>MIN_VALUE (ignoring case)</li>
      <li>MIN (ignoring case)</li>
      <li>MAX_VALUE (ignoring case)</li>
@@ -142,59 +165,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html#LongConverter--">LongConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LongConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -202,12 +235,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="LongConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -218,81 +252,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                    <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                    <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/LongConverter.html">Use</a></li>
@@ -303,16 +344,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/LongConverter.html" target="_top">Frames</a></li>
-<li><a href="LongConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -325,6 +358,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -341,10 +377,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/MonthDayConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/MonthDayConverter.html
new file mode 100644
index 0000000..c65e68d
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/MonthDayConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>MonthDayConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.MonthDayConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MonthDayConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MonthDayConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class MonthDayConverter" class="title">Class MonthDayConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.MonthDayConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html?is-external=true" title="class or interface in java.time" class="externalLink">MonthDay</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">MonthDayConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html?is-external=true" title="class or interface in java.time" class="externalLink">MonthDay</a>&gt;</pre>
+<div class="block">Converter, converting from String to Year.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MonthDayConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html?is-external=true" title="class or interface in java.time" class="externalLink">MonthDay</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MonthDayConverter</h4>
+<pre>public&nbsp;MonthDayConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html?is-external=true" title="class or interface in java.time" class="externalLink">MonthDay</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                        <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html?is-external=true" title="class or interface in java.time" class="externalLink">MonthDay</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MonthDayConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/NumberConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/NumberConverter.html
index a2318c0..c2e942a 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/NumberConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/NumberConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>NumberConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>NumberConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.NumberConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="NumberConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="NumberConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/NumberConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/NumberConverter.html" target="_top">Frames</a></li>
-<li><a href="NumberConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class NumberConverter" class="title">Class NumberConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.NumberConverter</li>
@@ -113,13 +137,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang" class="externalLink">Number</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">NumberConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang" class="externalLink">Number</a>&gt;</pre>
 <div class="block">Converter, converting from String to Number. Valid inputs are:
  <pre>
      POSITIVE_INFINITY -&gt; Double.POSITIVE_INFINITY
@@ -135,59 +158,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html#NumberConverter--">NumberConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NumberConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang" class="externalLink">Number</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -195,12 +228,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="NumberConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -211,81 +245,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                      <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang" class="externalLink">Number</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                      <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang" class="externalLink">Number</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/NumberConverter.html">Use</a></li>
@@ -296,16 +337,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/NumberConverter.html" target="_top">Frames</a></li>
-<li><a href="NumberConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -318,6 +351,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -334,10 +370,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html
new file mode 100644
index 0000000..7a2006c
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>OffsetDateTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OffsetDateTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OffsetDateTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class OffsetDateTimeConverter" class="title">Class OffsetDateTimeConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetDateTime</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">OffsetDateTimeConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetDateTime</a>&gt;</pre>
+<div class="block">Converter, converting from String to OffsetDateTime.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">OffsetDateTimeConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetDateTime</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OffsetDateTimeConverter</h4>
+<pre>public&nbsp;OffsetDateTimeConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetDateTime</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                              <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetDateTime</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OffsetDateTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html
new file mode 100644
index 0000000..a30e690
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>OffsetTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.OffsetTimeConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OffsetTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OffsetTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class OffsetTimeConverter" class="title">Class OffsetTimeConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.OffsetTimeConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetTime</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">OffsetTimeConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetTime</a>&gt;</pre>
+<div class="block">Converter, converting from String to OffsetTime.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">OffsetTimeConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetTime</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OffsetTimeConverter</h4>
+<pre>public&nbsp;OffsetTimeConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetTime</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                          <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetTime</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OffsetTimeConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/OptionalConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/OptionalConverter.html
new file mode 100644
index 0000000..635ef3e
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/OptionalConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>OptionalConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.OptionalConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OptionalConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OptionalConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class OptionalConverter" class="title">Class OptionalConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.OptionalConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">OptionalConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&gt;</pre>
+<div class="block">Converter, converting from String to Optional.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">OptionalConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OptionalConverter</h4>
+<pre>public&nbsp;OptionalConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                        <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OptionalConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/PathConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/PathConverter.html
index e861335..49cb002 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/PathConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/PathConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>PathConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>PathConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.PathConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PathConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="PathConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PathConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/PathConverter.html" target="_top">Frames</a></li>
-<li><a href="PathConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class PathConverter" class="title">Class PathConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.PathConverter</li>
@@ -113,14 +137,13 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file" class="externalLink">Path</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">PathConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a>&gt;</pre>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file" class="externalLink">Path</a>&gt;</pre>
+<div class="block">Converter, converting from String to Path, using FileSystem.getPath(createValue).</div>
 </li>
 </ul>
 </div>
@@ -128,59 +151,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html#PathConverter--">PathConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">PathConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file" class="externalLink">Path</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -188,12 +221,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="PathConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -204,81 +238,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                    <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file" class="externalLink">Path</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                    <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file" class="externalLink">Path</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PathConverter.html">Use</a></li>
@@ -289,16 +330,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/PathConverter.html" target="_top">Frames</a></li>
-<li><a href="PathConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -311,6 +344,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -327,10 +363,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/ShortConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/ShortConverter.html
index dc5e1cb..5f797d8 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/ShortConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/ShortConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ShortConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ShortConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.ShortConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ShortConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ShortConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ShortConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/ShortConverter.html" target="_top">Frames</a></li>
-<li><a href="ShortConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class ShortConverter" class="title">Class ShortConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.ShortConverter</li>
@@ -113,23 +137,22 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">ShortConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a>&gt;</pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a>&gt;</pre>
 <div class="block">Converter, converting from String to Short, the supported format is one of the following:
  <ul>
-     <li>123 (byte value)</li>
-     <li>0xFF (byte value)</li>
-     <li>0XDF (byte value)</li>
-     <li>0D1 (byte value)</li>
-     <li>-123 (byte value)</li>
-     <li>-0xFF (byte value)</li>
-     <li>-0XDF (byte value)</li>
-     <li>-0D1 (byte value)</li>
+     <li>123 (byte createValue)</li>
+     <li>0xFF (byte createValue)</li>
+     <li>0XDF (byte createValue)</li>
+     <li>0D1 (byte createValue)</li>
+     <li>-123 (byte createValue)</li>
+     <li>-0xFF (byte createValue)</li>
+     <li>-0XDF (byte createValue)</li>
+     <li>-0D1 (byte createValue)</li>
      <li>MIN_VALUE (ignoring case)</li>
      <li>MIN (ignoring case)</li>
      <li>MAX_VALUE (ignoring case)</li>
@@ -142,59 +165,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html#ShortConverter--">ShortConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ShortConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -202,12 +235,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ShortConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -218,81 +252,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                     <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                     <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ShortConverter.html">Use</a></li>
@@ -303,16 +344,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/ShortConverter.html" target="_top">Frames</a></li>
-<li><a href="ShortConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -325,6 +358,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -341,10 +377,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/SupplierConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/SupplierConverter.html
new file mode 100644
index 0000000..8667164
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/SupplierConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>SupplierConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.SupplierConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SupplierConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SupplierConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class SupplierConverter" class="title">Class SupplierConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.SupplierConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">SupplierConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&gt;</pre>
+<div class="block">Converter, converting from String to Supplier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SupplierConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SupplierConverter</h4>
+<pre>public&nbsp;SupplierConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                        <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>context</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SupplierConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/URIConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/URIConverter.html
index efa651a..e8eb634 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/URIConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/URIConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>URIConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>URIConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.URIConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="URIConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="URIConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/URIConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/URIConverter.html" target="_top">Frames</a></li>
-<li><a href="URIConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class URIConverter" class="title">Class URIConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.URIConverter</li>
@@ -113,14 +137,13 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">URIConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</pre>
-<div class="block">Converter, converting from String to URI, using new URI(value).</div>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&gt;</pre>
+<div class="block">Converter, converting from String to URI, using new URI(createValue).</div>
 </li>
 </ul>
 </div>
@@ -128,59 +151,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html#URIConverter--">URIConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">URIConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -188,12 +221,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="URIConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -204,81 +238,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                   <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                   <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/URIConverter.html">Use</a></li>
@@ -289,16 +330,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/URIConverter.html" target="_top">Frames</a></li>
-<li><a href="URIConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -311,6 +344,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -327,10 +363,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/URLConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/URLConverter.html
index 3cf3773..984ac54 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/URLConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/URLConverter.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>URLConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>URLConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters.URLConverter class">
 <meta name="keywords" content="convert()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="URLConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="URLConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
+var data = {"i0":10,"i1":10,"i2":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/URLConverter.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/URLConverter.html" target="_top">Frames</a></li>
-<li><a href="URLConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,18 +105,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.internal.converters</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
 <h2 title="Class URLConverter" class="title">Class URLConverter</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.internal.converters.URLConverter</li>
@@ -113,14 +137,13 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;</dd>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;</code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">URLConverter</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;</pre>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;</pre>
+<div class="block">Converter, converting from String to URL, using new URL(createValue).</div>
 </li>
 </ul>
 </div>
@@ -128,59 +151,69 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html#URLConverter--">URLConverter</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">URLConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -188,12 +221,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="URLConverter--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -204,81 +238,88 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                   <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">PropertyConverter</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                   <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;</code></dd>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;</code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/URLConverter.html">Use</a></li>
@@ -289,16 +330,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/URLConverter.html" target="_top">Frames</a></li>
-<li><a href="URLConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -311,6 +344,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -327,10 +363,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/YearConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/YearConverter.html
new file mode 100644
index 0000000..e18b886
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/YearConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>YearConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.YearConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="YearConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/YearConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class YearConverter" class="title">Class YearConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.YearConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Year.html?is-external=true" title="class or interface in java.time" class="externalLink">Year</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">YearConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Year.html?is-external=true" title="class or interface in java.time" class="externalLink">Year</a>&gt;</pre>
+<div class="block">Converter, converting from String to Year.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">YearConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/Year.html?is-external=true" title="class or interface in java.time" class="externalLink">Year</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>YearConverter</h4>
+<pre>public&nbsp;YearConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Year.html?is-external=true" title="class or interface in java.time" class="externalLink">Year</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                    <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/Year.html?is-external=true" title="class or interface in java.time" class="externalLink">Year</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/YearConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/YearMonthConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/YearMonthConverter.html
new file mode 100644
index 0000000..7c64170
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/YearMonthConverter.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>YearMonthConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.core.internal.converters.YearMonthConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="YearMonthConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/YearMonthConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.internal.converters</a></div>
+<h2 title="Class YearMonthConverter" class="title">Class YearMonthConverter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.core.internal.converters.YearMonthConverter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html?is-external=true" title="class or interface in java.time" class="externalLink">YearMonth</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">YearMonthConverter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html?is-external=true" title="class or interface in java.time" class="externalLink">YearMonth</a>&gt;</pre>
+<div class="block">Converter, converting from String to YearMonth.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">YearMonthConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html?is-external=true" title="class or interface in java.time" class="externalLink">YearMonth</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>YearMonthConverter</h4>
+<pre>public&nbsp;YearMonthConverter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html?is-external=true" title="class or interface in java.time" class="externalLink">YearMonth</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                         <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html?is-external=true" title="class or interface in java.time" class="externalLink">YearMonth</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/YearMonthConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigDecimalConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigDecimalConverter.html
index f5b44b7..634a66a 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigDecimalConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigDecimalConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.BigDecimalConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.BigDecimalConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.BigDecimalConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.BigDecimalConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/BigDecimalConverter.html" target="_top">Frames</a></li>
-<li><a href="BigDecimalConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.BigDecimalConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.BigDecimalConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.BigDecimalConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/BigDecimalConverter.html" target="_top">Frames</a></li>
-<li><a href="BigDecimalConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigIntegerConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigIntegerConverter.html
index a1dc43b..a4e8a16 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigIntegerConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BigIntegerConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.BigIntegerConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.BigIntegerConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.BigIntegerConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.BigIntegerConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/BigIntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="BigIntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.BigIntegerConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.BigIntegerConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.BigIntegerConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/BigIntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="BigIntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BooleanConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BooleanConverter.html
index b82f81f..287e3e9 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BooleanConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/BooleanConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.BooleanConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.BooleanConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.BooleanConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.BooleanConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/BooleanConverter.html" target="_top">Frames</a></li>
-<li><a href="BooleanConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.BooleanConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.BooleanConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.BooleanConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/BooleanConverter.html" target="_top">Frames</a></li>
-<li><a href="BooleanConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ByteConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ByteConverter.html
index bc2a855..a144f4c 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ByteConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ByteConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.ByteConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.ByteConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.ByteConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.ByteConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/ByteConverter.html" target="_top">Frames</a></li>
-<li><a href="ByteConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.ByteConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.ByteConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.ByteConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/ByteConverter.html" target="_top">Frames</a></li>
-<li><a href="ByteConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CharConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CharConverter.html
index 6139ec0..c8f7a15 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CharConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CharConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.CharConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.CharConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.CharConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.CharConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/CharConverter.html" target="_top">Frames</a></li>
-<li><a href="CharConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.CharConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.CharConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.CharConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/CharConverter.html" target="_top">Frames</a></li>
-<li><a href="CharConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ClassConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ClassConverter.html
index 63bb11b..6f24601 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ClassConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ClassConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.ClassConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.ClassConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.ClassConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.ClassConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/ClassConverter.html" target="_top">Frames</a></li>
-<li><a href="ClassConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.ClassConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.ClassConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.ClassConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/ClassConverter.html" target="_top">Frames</a></li>
-<li><a href="ClassConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CurrencyConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CurrencyConverter.html
index c5e07b1..1563e83 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CurrencyConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/CurrencyConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.CurrencyConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.CurrencyConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.CurrencyConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.CurrencyConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/CurrencyConverter.html" target="_top">Frames</a></li>
-<li><a href="CurrencyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.CurrencyConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.CurrencyConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.CurrencyConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/CurrencyConverter.html" target="_top">Frames</a></li>
-<li><a href="CurrencyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DoubleConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DoubleConverter.html
index d756ab0..f3af54e 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DoubleConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DoubleConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.DoubleConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.DoubleConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.DoubleConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.DoubleConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/DoubleConverter.html" target="_top">Frames</a></li>
-<li><a href="DoubleConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.DoubleConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.DoubleConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.DoubleConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/DoubleConverter.html" target="_top">Frames</a></li>
-<li><a href="DoubleConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DurationConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DurationConverter.html
new file mode 100644
index 0000000..30feddd
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/DurationConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.DurationConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.DurationConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.DurationConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.DurationConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.DurationConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FileConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FileConverter.html
index 357d3fe..b867781 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FileConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FileConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.FileConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.FileConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.FileConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.FileConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/FileConverter.html" target="_top">Frames</a></li>
-<li><a href="FileConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.FileConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.FileConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.FileConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/FileConverter.html" target="_top">Frames</a></li>
-<li><a href="FileConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FloatConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FloatConverter.html
index 140f156..b00b0f7 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FloatConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/FloatConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.FloatConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.FloatConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.FloatConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.FloatConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/FloatConverter.html" target="_top">Frames</a></li>
-<li><a href="FloatConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.FloatConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.FloatConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.FloatConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/FloatConverter.html" target="_top">Frames</a></li>
-<li><a href="FloatConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/InstantConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/InstantConverter.html
new file mode 100644
index 0000000..b5a03bd
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/InstantConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.InstantConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.InstantConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.InstantConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.InstantConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.InstantConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/IntegerConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/IntegerConverter.html
index d298dc6..62eac41 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/IntegerConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/IntegerConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.IntegerConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.IntegerConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.IntegerConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.IntegerConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/IntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="IntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.IntegerConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.IntegerConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.IntegerConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/IntegerConverter.html" target="_top">Frames</a></li>
-<li><a href="IntegerConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalDateConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalDateConverter.html
new file mode 100644
index 0000000..dffd799
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalDateConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.LocalDateConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.LocalDateConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.LocalDateConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.LocalDateConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.LocalDateConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalDateTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalDateTimeConverter.html
new file mode 100644
index 0000000..770f894
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalDateTimeConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.LocalDateTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.LocalDateTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.LocalDateTimeConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.LocalDateTimeConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.LocalDateTimeConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalTimeConverter.html
new file mode 100644
index 0000000..c9d28f9
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LocalTimeConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.LocalTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.LocalTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.LocalTimeConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.LocalTimeConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.LocalTimeConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LongConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LongConverter.html
index 1ce91b4..ac68f3c 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LongConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/LongConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.LongConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.LongConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.LongConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.LongConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/LongConverter.html" target="_top">Frames</a></li>
-<li><a href="LongConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.LongConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.LongConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.LongConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/LongConverter.html" target="_top">Frames</a></li>
-<li><a href="LongConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/MonthDayConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/MonthDayConverter.html
new file mode 100644
index 0000000..fc9d1fa
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/MonthDayConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.MonthDayConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.MonthDayConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.MonthDayConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.MonthDayConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.MonthDayConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/NumberConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/NumberConverter.html
index 1416e14..a7404dd 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/NumberConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/NumberConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.NumberConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.NumberConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.NumberConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.NumberConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/NumberConverter.html" target="_top">Frames</a></li>
-<li><a href="NumberConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.NumberConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.NumberConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.NumberConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/NumberConverter.html" target="_top">Frames</a></li>
-<li><a href="NumberConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OffsetDateTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OffsetDateTimeConverter.html
new file mode 100644
index 0000000..97ac7c3
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OffsetDateTimeConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.OffsetDateTimeConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OffsetTimeConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OffsetTimeConverter.html
new file mode 100644
index 0000000..c0beb95
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OffsetTimeConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.OffsetTimeConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.OffsetTimeConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.OffsetTimeConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.OffsetTimeConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.OffsetTimeConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OptionalConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OptionalConverter.html
new file mode 100644
index 0000000..036b988
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/OptionalConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.OptionalConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.OptionalConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.OptionalConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.OptionalConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.OptionalConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/PathConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/PathConverter.html
index e4c01d3..f005249 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/PathConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/PathConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.PathConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.PathConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.PathConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.PathConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/PathConverter.html" target="_top">Frames</a></li>
-<li><a href="PathConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.PathConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.PathConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.PathConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/PathConverter.html" target="_top">Frames</a></li>
-<li><a href="PathConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ShortConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ShortConverter.html
index c90cd4b..b4d52d5 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ShortConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/ShortConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.ShortConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.ShortConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.ShortConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.ShortConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/ShortConverter.html" target="_top">Frames</a></li>
-<li><a href="ShortConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.ShortConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.ShortConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.ShortConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/ShortConverter.html" target="_top">Frames</a></li>
-<li><a href="ShortConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/SupplierConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/SupplierConverter.html
new file mode 100644
index 0000000..c609bb6
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/SupplierConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.SupplierConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.SupplierConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.SupplierConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.SupplierConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.SupplierConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URIConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URIConverter.html
index 5a0758d..46d9b6a 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URIConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URIConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.URIConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.URIConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.URIConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.URIConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/URIConverter.html" target="_top">Frames</a></li>
-<li><a href="URIConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.URIConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.URIConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.URIConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/URIConverter.html" target="_top">Frames</a></li>
-<li><a href="URIConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URLConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URLConverter.html
index 6cfe883..a623fae 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URLConverter.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/URLConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.URLConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.internal.converters.URLConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.URLConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.URLConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/URLConverter.html" target="_top">Frames</a></li>
-<li><a href="URLConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.internal.converters.URLConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.URLConverter</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.URLConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li><a href="../URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/tamaya/core/internal/converters/class-use/URLConverter.html" target="_top">Frames</a></li>
-<li><a href="URLConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/YearConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/YearConverter.html
new file mode 100644
index 0000000..a9f70c4
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/YearConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.YearConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.YearConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.YearConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.YearConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.YearConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/YearMonthConverter.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/YearMonthConverter.html
new file mode 100644
index 0000000..69c6682
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/class-use/YearMonthConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.internal.converters.YearMonthConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.core.internal.converters.YearMonthConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.core.internal.converters.YearMonthConverter" class="title">Uses of Class<br>org.apache.tamaya.core.internal.converters.YearMonthConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.internal.converters.YearMonthConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/package-summary.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/package-summary.html
index c4a023e..42df2dd 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal.converters package">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/propertysource/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,18 +77,35 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.core.internal.converters</h1>
 </div>
 <div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Contains implementations of the converters provided by default.</div>
+</section>
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -84,7 +113,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></td>
+<th class="colFirst" scope="row"><a href="BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to BigDecimal, the supported format is one of the following:
  
@@ -98,7 +127,7 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></td>
+<th class="colFirst" scope="row"><a href="BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to BigInteger, the supported format is one of the following:
  
@@ -112,24 +141,24 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></td>
+<th class="colFirst" scope="row"><a href="BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Boolean.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></td>
+<th class="colFirst" scope="row"><a href="ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Byte, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
@@ -138,20 +167,20 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></td>
+<th class="colFirst" scope="row"><a href="CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Character, the supported format is one of the following:
  
      'a'
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
  </div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></td>
+<th class="colFirst" scope="row"><a href="ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Class, hereby using the following classloaders:
  
@@ -162,12 +191,12 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></td>
+<th class="colFirst" scope="row"><a href="CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Currency, the supported format is one of the following:
  
      CHF (currency code)
-     123 (numeric currency value &gt;
+     123 (numeric currency createValue &gt;
      = 0)
      DE (ISO 2-digit country)
      de_DE, de_DE_123 (Locale)
@@ -175,64 +204,50 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></td>
+<th class="colFirst" scope="row"><a href="DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Double, using the Java number syntax:
  (-)?</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a>&lt;T&gt;</td>
+<th class="colFirst" scope="row"><a href="DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to tge given enum type.</div>
+<div class="block">Converter, converting from String to Boolean.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></td>
+<th class="colFirst" scope="row"><a href="FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<div class="block">Converter, converting from String to File, using new File(createValue).</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></td>
+<th class="colFirst" scope="row"><a href="FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Float, using the Java number syntax:
  (-)?</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></td>
+<th class="colFirst" scope="row"><a href="InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to Integer, the supported format is one of the following:
- 
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
-     MIN_VALUE (ignoring case)
-     MIN (ignoring case)
-     MAX_VALUE (ignoring case)
-     MAX (ignoring case)
- </div>
+<div class="block">Converter, converting from String to Instant.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></td>
+<th class="colFirst" scope="row"><a href="IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to Long, the supported format is one of the following:
+<div class="block">Converter, converting from String to Integer, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
@@ -241,30 +256,92 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></td>
+<th class="colFirst" scope="row"><a href="LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to LocalDate.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to LocalDateTime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to LocalTime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Long, the supported format is one of the following:
+ 
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
+     MIN_VALUE (ignoring case)
+     MIN (ignoring case)
+     MAX_VALUE (ignoring case)
+     MAX (ignoring case)
+ </div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Year.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Number.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></td>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<div class="block">Converter, converting from String to OffsetDateTime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to OffsetTime.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></td>
+<th class="colFirst" scope="row"><a href="OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Optional.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Path, using FileSystem.getPath(createValue).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></th>
 <td class="colLast">
 <div class="block">Converter, converting from String to Short, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
@@ -273,15 +350,33 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></td>
+<th class="colFirst" scope="row"><a href="SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to URI, using new URI(value).</div>
+<div class="block">Converter, converting from String to Supplier.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></td>
+<th class="colFirst" scope="row"><a href="URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></th>
 <td class="colLast">
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<div class="block">Converter, converting from String to URI, using new URI(createValue).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to URL, using new URL(createValue).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Year.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to YearMonth.</div>
 </td>
 </tr>
 </tbody>
@@ -289,16 +384,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -309,16 +407,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/propertysource/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -331,11 +421,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/package-tree.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/package-tree.html
index fcceb39..3b6d259 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core.internal.converters Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core.internal.converters Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core.internal.converters Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core.internal.converters Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/package-tree.html">Prev</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/propertysource/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.core.internal.converters</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,42 +101,58 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigDecimalConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigIntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BooleanConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ByteConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CharConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ClassConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CurrencyConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DoubleConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">EnumConverter</span></a>&lt;T&gt; (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FileConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FloatConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">IntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LongConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">NumberConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">PathConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ShortConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URIConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="../../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URLConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigDecimalConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigIntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BooleanConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ByteConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CharConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ClassConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CurrencyConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DoubleConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DurationConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FileConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FloatConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">InstantConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">IntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalDateConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalDateTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LongConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">MonthDayConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">NumberConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OffsetDateTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OffsetTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OptionalConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">PathConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ShortConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">SupplierConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URIConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URLConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="YearConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">YearConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">YearMonthConverter</span></a> (implements org.apache.tamaya.spi.<a href="../../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
 </ul>
 </li>
 </ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -123,16 +163,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/tamaya/core/internal/package-tree.html">Prev</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/propertysource/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -145,11 +177,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/converters/package-use.html b/apidocs/stable/org/apache/tamaya/core/internal/converters/package-use.html
index 7a80bd0..7c844f3 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/converters/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/converters/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.core.internal.converters (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,25 +76,40 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.core.internal.converters" class="title">Uses of Package<br>org.apache.tamaya.core.internal.converters</h1>
 </div>
 <div class="contentContainer">No usage of org.apache.tamaya.core.internal.converters</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/internal/converters/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/package-summary.html b/apidocs/stable/org/apache/tamaya/core/internal/package-summary.html
index f14ee2c..ce86838 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core.internal (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core.internal (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.internal package">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core.internal (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core.internal (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,36 +77,37 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.core.internal</h1>
 </div>
 <div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</section>
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
-<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Interface</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal">ConfigValueEvaluator</a></td>
-<td class="colLast">
-<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b>value
- for a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -102,88 +115,34 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal">DefaultConfiguration</a></td>
+<th class="colFirst" scope="row"><a href="CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></th>
 <td class="colLast">
 <div class="block">Implementation of the Configuration API.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></td>
-<td class="colLast">
-<div class="block">Default implementation of a simple ConfigurationContext.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a></td>
-<td class="colLast">
-<div class="block">Default implementation of <a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></td>
-<td class="colLast">
-<div class="block">Implementation of the Configuration API.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal">DefaultConfigValueEvaluator</a></td>
-<td class="colLast">
-<div class="block">Implementation of the Configuration API.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></td>
-<td class="colLast">
-<div class="block">This class implements the (default) <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util"><code>ServiceLoader</code></a> to load the services required.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></td>
+<th class="colFirst" scope="row"><a href="OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></th>
 <td class="colLast">
 <div class="block">ServiceContext implementation based on OSGI Service mechanisms.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></td>
-<td class="colLast">
-<div class="block">An bundle listener that registers services defined in META-INF/services, when a bundle is starting.</div>
-</td>
-</tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal">PriorityServiceComparator</a></td>
+<th class="colFirst" scope="row"><a href="OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal">OSGIServiceLoader</a></th>
 <td class="colLast">
-<div class="block">Comparator implementation for odering services loaded based on their increasing priority values.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal">PropertyConverterManager</a></td>
-<td class="colLast">
-<div class="block">Manager that deals with <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal">PropertyFilterComparator</a></td>
-<td class="colLast">
-<div class="block">Comparator for PropertyFilters based on their priority annotations.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html" title="class in org.apache.tamaya.core.internal">PropertyFiltering</a></td>
-<td class="colLast">
-<div class="block">Implementation of the Configuration API.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal">PropertySourceComparator</a></td>
-<td class="colLast">
-<div class="block">Comparator for ordering of PropertySources based on their ordinal method and class name.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/internal/ReflectionUtil.html" title="class in org.apache.tamaya.core.internal">ReflectionUtil</a></td>
-<td class="colLast">
-<div class="block">Small utility class used by other parts.</div>
+<div class="block">A bundle listener that registers services defined in META-INF/services, when
+ a bundle is starting.</div>
 </td>
 </tr>
 </tbody>
@@ -191,16 +150,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -211,16 +173,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -233,11 +187,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/package-tree.html b/apidocs/stable/org/apache/tamaya/core/internal/package-tree.html
index a728af3..20d1ff8 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core.internal Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core.internal Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core.internal Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core.internal Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.core.internal</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,42 +101,42 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfiguration</span></a> (implements org.apache.tamaya.<a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationContext</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationContextBuilder</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationProvider</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigValueEvaluator</span></a> (implements org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal">ConfigValueEvaluator</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceLoader</span></a> (implements org.osgi.framework.BundleListener)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PriorityServiceComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyConverterManager</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyFilterComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyFiltering</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertySourceComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/ReflectionUtil.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">ReflectionUtil</span></a></li>
+<li class="circle">org.apache.tamaya.core.internal.<a href="CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfigurationProvider</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="../../spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfiguration</span></a> (implements org.apache.tamaya.<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">org.apache.tamaya.core.internal.<a href="CoreConfiguration.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfiguration</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationBuilder</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>)
+<ul>
+<li class="circle">org.apache.tamaya.core.internal.<a href="CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfigurationBuilder</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.core.internal.<a href="OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
+<li class="circle">org.apache.tamaya.core.internal.<a href="OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceLoader</span></a> (implements org.osgi.framework.BundleListener)</li>
 </ul>
 </li>
 </ul>
-<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
-<ul>
-<li type="circle">org.apache.tamaya.core.internal.<a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal"><span class="typeNameLink">ConfigValueEvaluator</span></a></li>
-</ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -123,16 +147,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -145,11 +161,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/internal/package-use.html b/apidocs/stable/org/apache/tamaya/core/internal/package-use.html
index 242fa46..34c04a4 100644
--- a/apidocs/stable/org/apache/tamaya/core/internal/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/core/internal/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.core.internal (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.core.internal (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.core.internal (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.core.internal (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,69 +76,62 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.core.internal" class="title">Uses of Package<br>org.apache.tamaya.core.internal</h1>
 </div>
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> used by <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.core.internal</a> used by <a href="package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/internal/class-use/ConfigValueEvaluator.html#org.apache.tamaya.core.internal">ConfigValueEvaluator</a>
-<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b>value
- for a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/internal/class-use/DefaultConfigurationContextBuilder.html#org.apache.tamaya.core.internal">DefaultConfigurationContextBuilder</a>
-<div class="block">Default implementation of <a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/internal/class-use/OSGIServiceLoader.html#org.apache.tamaya.core.internal">OSGIServiceLoader</a>
-<div class="block">An bundle listener that registers services defined in META-INF/services, when a bundle is starting.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/internal/class-use/PriorityServiceComparator.html#org.apache.tamaya.core.internal">PriorityServiceComparator</a>
-<div class="block">Comparator implementation for odering services loaded based on their increasing priority values.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/internal/class-use/PropertyFilterComparator.html#org.apache.tamaya.core.internal">PropertyFilterComparator</a>
-<div class="block">Comparator for PropertyFilters based on their priority annotations.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/internal/class-use/PropertySourceComparator.html#org.apache.tamaya.core.internal">PropertySourceComparator</a>
-<div class="block">Comparator for ordering of PropertySources based on their ordinal method and class name.</div>
+<th class="colFirst" scope="row"><a href="class-use/OSGIServiceLoader.html#org.apache.tamaya.core.internal">OSGIServiceLoader</a></th>
+<td class="colLast">
+<div class="block">A bundle listener that registers services defined in META-INF/services, when
+ a bundle is starting.</div>
 </td>
 </tr>
 </tbody>
@@ -134,16 +139,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -154,16 +162,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/internal/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -176,11 +176,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/package-summary.html b/apidocs/stable/org/apache/tamaya/core/package-summary.html
index 89e280b..cdf708c 100644
--- a/apidocs/stable/org/apache/tamaya/core/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/core/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core package">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../org/apache/tamaya/core/internal/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,18 +77,37 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
+<p>@Version("0.4")
+</p>
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.core</h1>
 </div>
 <div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">This is the root package of the Apache Tamaya API implementation.</div>
+</section>
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -84,9 +115,9 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></td>
+<th class="colFirst" scope="row"><a href="OSGIActivator.html" title="class in org.apache.tamaya.core">OSGIActivator</a></th>
 <td class="colLast">
-<div class="block">A bundle activator that registers the <a href="../../../../org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><code>OSGIServiceLoader</code></a>.</div>
+<div class="block">A bundle activator that registers the <a href="internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><code>OSGIServiceLoader</code></a>.</div>
 </td>
 </tr>
 </tbody>
@@ -94,16 +125,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -114,16 +148,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../org/apache/tamaya/core/internal/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -136,11 +162,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/package-tree.html b/apidocs/stable/org/apache/tamaya/core/package-tree.html
index 1003b8f..9bddcd6 100644
--- a/apidocs/stable/org/apache/tamaya/core/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/core/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/package-tree.html">Prev</a></li>
-<li><a href="../../../../org/apache/tamaya/core/internal/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.core</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,25 +101,30 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.core.<a href="../../../../org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core"><span class="typeNameLink">OSGIActivator</span></a> (implements org.osgi.framework.BundleActivator)</li>
+<li class="circle">org.apache.tamaya.core.<a href="OSGIActivator.html" title="class in org.apache.tamaya.core"><span class="typeNameLink">OSGIActivator</span></a> (implements org.osgi.framework.BundleActivator)</li>
 </ul>
 </li>
 </ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -106,16 +135,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/package-tree.html">Prev</a></li>
-<li><a href="../../../../org/apache/tamaya/core/internal/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -128,11 +149,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/package-use.html b/apidocs/stable/org/apache/tamaya/core/package-use.html
index d033943..04490ec 100644
--- a/apidocs/stable/org/apache/tamaya/core/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/core/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.core (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.core (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.core (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.core (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,25 +76,40 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.core" class="title">Uses of Package<br>org.apache.tamaya.core</h1>
 </div>
 <div class="contentContainer">No usage of org.apache.tamaya.core</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/core/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/propertysource/BasePropertySource.html b/apidocs/stable/org/apache/tamaya/core/propertysource/BasePropertySource.html
index 5b0c988..7f82351 100644
--- a/apidocs/stable/org/apache/tamaya/core/propertysource/BasePropertySource.html
+++ b/apidocs/stable/org/apache/tamaya/core/propertysource/BasePropertySource.html
@@ -1,10 +1,10 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>BasePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>BasePropertySource (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.propertysource.BasePropertySource class">
 <meta name="keywords" content="getName()">
 <meta name="keywords" content="setName()">
@@ -13,42 +13,57 @@
 <meta name="keywords" content="getOrdinal()">
 <meta name="keywords" content="getDefaultOrdinal()">
 <meta name="keywords" content="get()">
-<meta name="keywords" content="isScannable()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="toStringValues()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BasePropertySource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="BasePropertySource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var data = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BasePropertySource.html">Use</a></li>
@@ -59,16 +74,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/BasePropertySource.html" target="_top">Frames</a></li>
-<li><a href="BasePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -81,12 +94,15 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
@@ -97,18 +113,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.core.propertysource</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.core.propertysource</a></div>
 <h2 title="Class BasePropertySource" class="title">Class BasePropertySource</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.core.propertysource.BasePropertySource</li>
@@ -120,18 +145,17 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dd>
-</dl>
-<dl>
-<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a>, <a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dd>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
 </dl>
 <hr>
-<br>
-<pre>public abstract class <span class="typeNameLabel">BasePropertySource</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></pre>
-<div class="block">Abstract <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows to set a default ordinal that will be used, if no
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public abstract class <span class="typeNameLabel">BasePropertySource</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>BasePropertySource</code></a></div>
+</div>
+<div class="block">Abstract <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
  ordinal is provided with the config.</div>
 </li>
 </ul>
@@ -140,146 +164,190 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
 <h3>Field Summary</h3>
 <ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
 <!--   -->
 </a>
-<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
-<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../../../../org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier</th>
-<th class="colLast" scope="col">Constructor and Description</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource--">BasePropertySource</a></span>()</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BasePropertySource</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor, using a default ordinal of 0.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource-int-">BasePropertySource</a></span>(int&nbsp;defaultOrdinal)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">BasePropertySource</a></span>&#8203;(int&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource-java.lang.String-">BasePropertySource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">BasePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#BasePropertySource-java.lang.String-int-">BasePropertySource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
-                  int&nbsp;defaultOrdinal)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">BasePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  int&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<td class="colFirst"><code><a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Access a property.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#getDefaultOrdinal--">getDefaultOrdinal</a></span>()</code>
-<div class="block">Returns the  default ordinal used, when no ordinal is set, or the ordinal was not parseable to an int value.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultOrdinal()">getDefaultOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#getName--">getName</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Get the name of the property source.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#getOrdinal--">getOrdinal</a></span>()</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal()">getOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">The ordinal value is the default ordering parameter which definines the default order of
  auto-discovered property sources.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#isScannable--">isScannable</a></span>()</code>
-<div class="block">Determines if this config source can be scanned for its list of properties.</div>
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
 </td>
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#setDefaultOrdinal-java.lang.Integer-">setDefaultOrdinal</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;defaultOrdinal)</code>
-<div class="block">Allows to set the ordinal of this property source explcitly.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setName(java.lang.String)">setName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Sets the property source's (unique) name.</div>
 </td>
 </tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
-<div class="block">Sets the property source's (unique) name.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOrdinal(java.lang.Integer)">setOrdinal</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
 </td>
 </tr>
 <tr id="i9" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#setOrdinal-java.lang.Integer-">setOrdinal</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ordinal)</code>
-<div class="block">Allows to set the ordinal of this property source explcitly.</div>
-</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toStringValues()">toStringValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
 <!--   -->
 </a>
-<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
-<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getProperties--">getProperties</a></code></li>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a>, <a href="../../spi/PropertySource.html#getProperties()">getProperties</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -287,18 +355,20 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="BasePropertySource-java.lang.String-">
+<a id="&lt;init&gt;(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>BasePropertySource</h4>
-<pre>protected&nbsp;BasePropertySource(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>protected&nbsp;BasePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -306,13 +376,14 @@
 </dl>
 </li>
 </ul>
-<a name="BasePropertySource-int-">
+<a id="&lt;init&gt;(int)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>BasePropertySource</h4>
-<pre>protected&nbsp;BasePropertySource(int&nbsp;defaultOrdinal)</pre>
+<pre>protected&nbsp;BasePropertySource&#8203;(int&nbsp;defaultOrdinal)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -320,14 +391,15 @@
 </dl>
 </li>
 </ul>
-<a name="BasePropertySource-java.lang.String-int-">
+<a id="&lt;init&gt;(java.lang.String,int)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>BasePropertySource</h4>
-<pre>protected&nbsp;BasePropertySource(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>protected&nbsp;BasePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
                              int&nbsp;defaultOrdinal)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -336,49 +408,54 @@
 </dl>
 </li>
 </ul>
-<a name="BasePropertySource--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BasePropertySource</h4>
 <pre>protected&nbsp;BasePropertySource()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Constructor, using a default ordinal of 0.</div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getName--">
+<a id="getName()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getName--">PropertySource</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getName()">PropertySource</a></code></span></div>
 <div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
  to ensure unique identity, either locally or remotely.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dd><code><a href="../../spi/PropertySource.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the configuration's name, never <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="setName-java.lang.String-">
+<a id="setName(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setName</h4>
-<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre class="methodSignature">public&nbsp;void&nbsp;setName&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Sets the property source's (unique) name.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -386,44 +463,47 @@
 </dl>
 </li>
 </ul>
-<a name="setOrdinal-java.lang.Integer-">
+<a id="setOrdinal(java.lang.Integer)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setOrdinal</h4>
-<pre>public&nbsp;void&nbsp;setOrdinal(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ordinal)</pre>
-<div class="block">Allows to set the ordinal of this property source explcitly. This will override any evaluated
- ordinal, or default ordinal. To reset an explcit ordinal call <code>setOrdinal(null);</code>.</div>
+<pre class="methodSignature">public&nbsp;void&nbsp;setOrdinal&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;ordinal)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Allows setting the ordinal of this property source explicitly. This will override any evaluated
+ ordinal, or default ordinal. To reset an explicit ordinal call <code>setOrdinal(null);</code>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>ordinal</code> - the explicit ordinal, or <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="setDefaultOrdinal-java.lang.Integer-">
+<a id="setDefaultOrdinal(java.lang.Integer)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setDefaultOrdinal</h4>
-<pre>public&nbsp;void&nbsp;setDefaultOrdinal(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;defaultOrdinal)</pre>
-<div class="block">Allows to set the ordinal of this property source explcitly. This will override any evaluated
- ordinal, or default ordinal. To reset an explcit ordinal call <code>setOrdinal(null);</code>.</div>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultOrdinal&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;defaultOrdinal)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Allows setting the ordinal of this property source explicitly. This will override any evaluated
+ ordinal, or default ordinal. To reset an explicit ordinal call <code>setOrdinal(null);</code>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>defaultOrdinal</code> - the default ordinal, or <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="getOrdinal--">
+<a id="getOrdinal()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrdinal</h4>
-<pre>public&nbsp;int&nbsp;getOrdinal()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getOrdinal--">PropertySource</a></code></span></div>
+<pre class="methodSignature">public&nbsp;int&nbsp;getOrdinal()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getOrdinal()">PropertySource</a></code></span></div>
 <div class="block">The ordinal value is the default ordering parameter which definines the default order of
  auto-discovered property sources. Ordering of property sources is important since values
  from property sources with higher ordinal values override values from less significant
@@ -447,128 +527,135 @@
 
  <p>Reordering of the default order of the config-sources:</p>
  <p>Example: If the properties file/s should be used <b>before</b> the other implementations,
- you have to configure an ordinal &gt; 1000. That means, you have to add e.g. tamaya.ordinal=401 to
+ you have to configure an ordinal &gt; 1000. That means, you have to addPropertyValue e.g. tamaya.ordinal=401 to
  /META-INF/javaconfiguration.properties . Hint: In case of property files every file is handled as independent
  config-source, but all of them have ordinal 400 by default (and can be reordered in a fine-grained manner.</p>
 
  In cases where it is not possible to change a config sources ordinal value, you may have several options:
  <ul>
-     <li>you can register an alternate implementation of <a href="../../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a>.</li>
-     <li>you can use a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to redefine the source order and finally use
-     <a href="../../../../../org/apache/tamaya/ConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
-     change the current default <a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
-     <li>finally, the imeplementor of this API may define alternate mechanism to reconfigure an ordinal
+     <li>you can use a <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> to redefine the source order and finally use
+     <a href="../../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
+     change the current default <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
+     <li>finally, the implementor of this API may define alternate mechanism to reconfigure an ordinal
      in a vendor specific way.</li>
  </ul></div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getOrdinal--">getOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dd><code><a href="../../spi/PropertySource.html#getOrdinal()">getOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the 'importance' aka ordinal of the configured values. The higher, the more important.</dd>
 </dl>
 </li>
 </ul>
-<a name="getDefaultOrdinal--">
+<a id="getDefaultOrdinal()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultOrdinal</h4>
-<pre>public&nbsp;int&nbsp;getDefaultOrdinal()</pre>
-<div class="block">Returns the  default ordinal used, when no ordinal is set, or the ordinal was not parseable to an int value.</div>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultOrdinal()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the  default ordinal used, by default 0.</dd>
 </dl>
 </li>
 </ul>
-<a name="get-java.lang.String-">
+<a id="get(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#get-java.lang.String-">PropertySource</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#get(java.lang.String)">PropertySource</a></code></span></div>
 <div class="block">Access a property.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dd><code><a href="../../spi/PropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>key</code> - the property's key, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the property value map, where <code>map.get(key) == value</code>, including also any metadata. In case a
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
  value is null, simply return <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="isScannable--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isScannable</h4>
-<pre>public&nbsp;boolean&nbsp;isScannable()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#isScannable--">PropertySource</a></code></span></div>
-<div class="block">Determines if this config source can be scanned for its list of properties.
-
- <p>
- PropertySources which are not scannable might not be able to find all the
- configured values to provide via <a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getProperties--"><code>PropertySource.getProperties()</code></a>. This might happen
- if the underlying storage doesn't support listing.
- </p></div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#isScannable--">isScannable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd><code>true</code> if this PropertySource can be scanned for its list of properties,
-         <code>false</code> if it cannot/should not be scanned.</dd>
-</dl>
-</li>
-</ul>
-<a name="equals-java.lang.Object-">
+<a id="equals(java.lang.Object)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toStringValues()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
-</dl>
+<h4>toStringValues</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toStringValues()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/BasePropertySource.html">Use</a></li>
@@ -579,16 +666,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/BasePropertySource.html" target="_top">Frames</a></li>
-<li><a href="BasePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -601,12 +680,15 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
@@ -617,10 +699,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html b/apidocs/stable/org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html
index 5e7d580..3728cd3 100644
--- a/apidocs/stable/org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html
+++ b/apidocs/stable/org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.core.propertysource.BasePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.core.propertysource.BasePropertySource (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.core.propertysource.BasePropertySource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.core.propertysource.BasePropertySource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">Class</a></li>
+<li><a href="../BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html" target="_top">Frames</a></li>
-<li><a href="BasePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,99 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.core.propertysource.BasePropertySource" class="title">Uses of Class<br>org.apache.tamaya.core.propertysource.BasePropertySource</h2>
 </div>
-<div class="classUseContainer">
-<ul class="blockList">
-<li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Package</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.propertysource">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a> in <a href="../../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
-<caption><span>Subclasses of <a href="../../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a> in <a href="../../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></span></code>
-<div class="block">PropertySource that allows to add the programs main arguments as configuration entries.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></span></code>
-<div class="block">This <a href="../../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> provides all properties which are set
- via
- <code>export myprop=myval</code> on UNIX Systems or
- <code>set myprop=myval</code> on Windows.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></span></code>
-<div class="block">Provider which reads all <a href="../../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
- <a href="../../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
- classpath.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></span></code>
-<div class="block">Simple implementation of a <a href="../../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
- simple property files and XML property files.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></span></code>
-<div class="block">This <a href="../../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.core.propertysource.BasePropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">Class</a></li>
+<li><a href="../BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -165,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html" target="_top">Frames</a></li>
-<li><a href="BasePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -187,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/propertysource/package-summary.html b/apidocs/stable/org/apache/tamaya/core/propertysource/package-summary.html
index 7ff8960..d763f7a 100644
--- a/apidocs/stable/org/apache/tamaya/core/propertysource/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/core/propertysource/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.core.propertysource package">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,18 +77,30 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.core.propertysource</h1>
 </div>
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -84,46 +108,9 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></td>
-<td class="colLast">
-<div class="block">Abstract <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows to set a default ordinal that will be used, if no
- ordinal is provided with the config.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></td>
-<td class="colLast">
-<div class="block">PropertySource that allows to add the programs main arguments as configuration entries.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></td>
-<td class="colLast">
-<div class="block">This <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> provides all properties which are set
- via
- <code>export myprop=myval</code> on UNIX Systems or
- <code>set myprop=myval</code> on Windows.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></td>
-<td class="colLast">
-<div class="block">Provider which reads all <a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
- <a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
- classpath.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></td>
-<td class="colLast">
-<div class="block">Simple implementation of a <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
- simple property files and XML property files.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></td>
-<td class="colLast">
-<div class="block">This <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
+<th class="colFirst" scope="row"><a href="BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></th>
+<td class="colLast">Deprecated.
+<div class="deprecationComment">Use <a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>BasePropertySource</code></a></div>
 </td>
 </tr>
 </tbody>
@@ -131,16 +118,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -151,16 +141,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -173,11 +155,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/propertysource/package-tree.html b/apidocs/stable/org/apache/tamaya/core/propertysource/package-tree.html
index 467184c..833dd50 100644
--- a/apidocs/stable/org/apache/tamaya/core/propertysource/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/core/propertysource/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.core.propertysource Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.core.propertysource Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.core.propertysource Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.core.propertysource Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.core.propertysource</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,33 +101,30 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)
-<ul>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">CLIPropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">EnvironmentPropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">JavaConfigurationPropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">SystemPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.core.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)</li>
 </ul>
 </li>
 </ul>
-</li>
-</ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -114,16 +135,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/internal/converters/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -136,11 +149,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/core/propertysource/package-use.html b/apidocs/stable/org/apache/tamaya/core/propertysource/package-use.html
index 7fe27bc..ec1f366 100644
--- a/apidocs/stable/org/apache/tamaya/core/propertysource/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/core/propertysource/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.core.propertysource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,61 +76,40 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.core.propertysource" class="title">Uses of Package<br>org.apache.tamaya.core.propertysource</h1>
 </div>
-<div class="contentContainer">
-<ul class="blockList">
-<li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Package</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.core.propertysource">
-<!--   -->
-</a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> used by <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Class and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/tamaya/core/propertysource/class-use/BasePropertySource.html#org.apache.tamaya.core.propertysource">BasePropertySource</a>
-<div class="block">Abstract <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows to set a default ordinal that will be used, if no
- ordinal is provided with the config.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-</div>
+<div class="contentContainer">No usage of org.apache.tamaya.core.propertysource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -129,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/core/propertysource/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -151,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/Main.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/Main.html
index 8325864..4743fc8 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/Main.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/Main.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Main (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Main (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.examples.custompropertysource.Main class">
 <meta name="keywords" content="main()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Main (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Main (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":9};
+var data = {"i0":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Main.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,6 +84,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -88,18 +103,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.examples.custompropertysource</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.examples.custompropertysource</a></div>
 <h2 title="Class Main" class="title">Class Main</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.examples.custompropertysource.Main</li>
@@ -110,15 +134,14 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">Main</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Small example demonstrating the usage of a self-written <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
- and <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>.
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Small example demonstrating the usage of a self-written <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
+ and <a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>.
 
  <p>
-  <a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><code>SimplePropertySource</code></a> is a custom implementation of a
-  <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>. It reads its properties from a
+  <a href="SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><code>SimplePropertySource</code></a> is a custom implementation of a
+  <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>. It reads its properties from a
   flexibly configurable location. As it is an implementation
   of <code>PropertySource</code> and it is listed as service implementation
   in <code>META-INF/services/org.apache.tamaya.spi.PropertySource</code> Tamaya is able
@@ -126,9 +149,9 @@
  </p>
 
  <p>
-  The same applies to <a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><code>SimplePropertySourceProvider</code></a> which is an implementation
-  of <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>. Tamaya finds implementations
-  of a <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a> also through the
+  The same applies to <a href="SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><code>SimplePropertySourceProvider</code></a> which is an implementation
+  of <a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>. Tamaya finds implementations
+  of a <a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a> also through the
   Service Provider Interface service of Java. Therefore it is listed in
   <code>META-INF/services/org.apache.tamaya.spi.PropertySourceProvider</code> file.
  </p></div>
@@ -139,31 +162,35 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/Main.html#main-java.lang.String:A-">main</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#main(java.lang.String%5B%5D)">main</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;args)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -171,37 +198,42 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="main-java.lang.String:A-">
+<a id="main(java.lang.String[])">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;main(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre class="methodSignature">public static&nbsp;void&nbsp;main&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;args)</pre>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Main.html">Use</a></li>
@@ -212,16 +244,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -234,6 +258,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -250,10 +277,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html
index aa486da..bc832e1 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html
@@ -1,47 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>SimplePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>SimplePropertySource (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.examples.custompropertysource.SimplePropertySource class">
 <meta name="keywords" content="CONFIG_PROPERTIES_LOCATION">
 <meta name="keywords" content="getName()">
 <meta name="keywords" content="getProperties()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SimplePropertySource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="SimplePropertySource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var data = {"i0":10,"i1":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/SimplePropertySource.html">Use</a></li>
@@ -52,16 +66,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -74,6 +86,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -90,21 +105,30 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.examples.custompropertysource</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.examples.custompropertysource</a></div>
 <h2 title="Class SimplePropertySource" class="title">Class SimplePropertySource</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource.BasePropertySource</a></li>
+<li><a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.examples.custompropertysource.SimplePropertySource</li>
@@ -118,12 +142,12 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></dd>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">SimplePropertySource</span>
-extends <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></pre>
+extends <a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block">A simple PropertySource class.</div>
 </li>
 </ul>
 </div>
@@ -131,89 +155,109 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
 <h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<table class="memberSummary">
 <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#CONFIG_PROPERTIES_LOCATION">CONFIG_PROPERTIES_LOCATION</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONFIG_PROPERTIES_LOCATION">CONFIG_PROPERTIES_LOCATION</a></span></code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
 <!--   -->
 </a>
-<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
-<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../../../../org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#SimplePropertySource--">SimplePropertySource</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SimplePropertySource</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getName--">getName</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Get the name of the property source.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getProperties--">getProperties</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current properties as Set.</div>
 </td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.tamaya.core.propertysource.BasePropertySource">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></h3>
-<code><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#get-java.lang.String-">get</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#getDefaultOrdinal--">getDefaultOrdinal</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#getOrdinal--">getOrdinal</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#isScannable--">isScannable</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#setDefaultOrdinal-java.lang.Integer-">setDefaultOrdinal</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#setOrdinal-java.lang.Integer-">setOrdinal</a></code></li>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="../../spisupport/propertysource/BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#get(java.lang.String)">get</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#getChangeSupport()">getChangeSupport</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#hashCode()">hashCode</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#toString()">toString</a>, <a href="../../spisupport/propertysource/BasePropertySource.html#toStringValues()">toStringValues</a></code></li>
 </ul>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -221,18 +265,19 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.detail">
+<li class="blockList"><a id="field.detail">
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="CONFIG_PROPERTIES_LOCATION">
+<a id="CONFIG_PROPERTIES_LOCATION">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CONFIG_PROPERTIES_LOCATION</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CONFIG_PROPERTIES_LOCATION</pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONFIG_PROPERTIES_LOCATION</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.tamaya.examples.custompropertysource.SimplePropertySource.CONFIG_PROPERTIES_LOCATION">Constant Field Values</a></dd>
@@ -241,88 +286,96 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="SimplePropertySource--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SimplePropertySource</h4>
 <pre>public&nbsp;SimplePropertySource()
-                     throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getName--">
+<a id="getName()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getName--">PropertySource</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getName()">PropertySource</a></code></span></div>
 <div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
  to ensure unique identity, either locally or remotely.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dd><code><a href="../../spi/PropertySource.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#getName--">getName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></code></dd>
+<dd><code><a href="../../spisupport/propertysource/BasePropertySource.html#getName()">getName</a></code>&nbsp;in class&nbsp;<code><a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the configuration's name, never <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="getProperties--">
+<a id="getProperties()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getProperties</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getProperties--">PropertySource</a></code></span></div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
 <div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
  when the underlying storage does not support iteration of its entries.
      <code>null</code></div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the corresponding map, never null.</dd>
+<dd>the corresponding mapProperties, never null.</dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/SimplePropertySource.html">Use</a></li>
@@ -333,16 +386,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -355,6 +400,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -371,10 +419,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html
index 8a614c4..2637083 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>SimplePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>SimplePropertySourceProvider (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider class">
 <meta name="keywords" content="getPropertySources()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SimplePropertySourceProvider (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="SimplePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10};
+var data = {"i0":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/SimplePropertySourceProvider.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,12 +84,15 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
@@ -88,18 +103,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.examples.custompropertysource</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.examples.custompropertysource</a></div>
 <h2 title="Class SimplePropertySourceProvider" class="title">Class SimplePropertySourceProvider</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider</li>
@@ -111,13 +135,13 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></dd>
+<dd><code><a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">SimplePropertySourceProvider</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></pre>
+<div class="block">A simple PropertySource provider class.</div>
 </li>
 </ul>
 </div>
@@ -125,63 +149,73 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
 <h3>Field Summary</h3>
 <ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.tamaya.spi.PropertySourceProvider">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySourceProvider">
 <!--   -->
 </a>
-<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></h3>
-<code><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html#EMPTY">EMPTY</a></code></li>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></h3>
+<code><a href="../../spi/PropertySourceProvider.html#EMPTY">EMPTY</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#SimplePropertySourceProvider--">SimplePropertySourceProvider</a></span>()</code>&nbsp;</td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SimplePropertySourceProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#getPropertySources--">getPropertySources</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -189,12 +223,13 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="SimplePropertySourceProvider--">
+<a id="&lt;init&gt;()">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -205,45 +240,51 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getPropertySources--">
+<a id="getPropertySources()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getPropertySources</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html#getPropertySources--">getPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></dd>
+<dd><code><a href="../../spi/PropertySourceProvider.html#getPropertySources()">getPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>For each e.g. property file, we return a single PropertySource
-         or an empty list if no PropertySource exists.</dd>
+         or an empty createList if no PropertySource exists.</dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/SimplePropertySourceProvider.html">Use</a></li>
@@ -254,16 +295,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -276,12 +309,15 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
@@ -292,10 +328,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/Main.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/Main.html
index ee7a478..87fa0f6 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/Main.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/Main.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.examples.custompropertysource.Main (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.examples.custompropertysource.Main (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.examples.custompropertysource.Main (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.examples.custompropertysource.Main (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
+<li><a href="../Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/custompropertysource/class-use/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.examples.custompropertysource.Main" class="title">Uses of Class<br>org.apache.tamaya.examples.custompropertysource.Main</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.examples.custompropertysource.Main</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
+<li><a href="../Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/custompropertysource/class-use/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySource.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySource.html
index 50b5cab..70fc363 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySource.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySource.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySource (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
+<li><a href="../SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySource.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySource" class="title">Uses of Class<br>org.apache.tamaya.examples.custompropertysource.SimplePropertySource</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.examples.custompropertysource.SimplePropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
+<li><a href="../SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySource.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySourceProvider.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySourceProvider.html
index cf539db..8881ddf 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySourceProvider.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySourceProvider.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
+<li><a href="../SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider" class="title">Uses of Class<br>org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.examples.custompropertysource.SimplePropertySourceProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
+<li><a href="../SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/custompropertysource/class-use/SimplePropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="SimplePropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-summary.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-summary.html
index 575e370..e697c25 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.examples.custompropertysource package">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/minimal/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,18 +77,30 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.examples.custompropertysource</h1>
 </div>
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -84,35 +108,42 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Main</a></td>
+<th class="colFirst" scope="row"><a href="Main.html" title="class in org.apache.tamaya.examples.custompropertysource">Main</a></th>
 <td class="colLast">
-<div class="block">Small example demonstrating the usage of a self-written <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
- and <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>.</div>
+<div class="block">Small example demonstrating the usage of a self-written <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
+ and <a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></th>
+<td class="colLast">
+<div class="block">A simple PropertySource class.</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></th>
+<td class="colLast">
+<div class="block">A simple PropertySource provider class.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -123,16 +154,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/minimal/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -145,11 +168,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-tree.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-tree.html
index d47e065..5560896 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.examples.custompropertysource Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.examples.custompropertysource Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.examples.custompropertysource Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.examples.custompropertysource Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/minimal/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.examples.custompropertysource</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,31 +101,36 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)
 <ul>
-<li type="circle">org.apache.tamaya.examples.custompropertysource.<a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.examples.custompropertysource.<a href="SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.tamaya.examples.custompropertysource.<a href="../../../../../org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Main</span></a></li>
-<li type="circle">org.apache.tamaya.examples.custompropertysource.<a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySourceProvider</span></a> (implements org.apache.tamaya.spi.<a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a>)</li>
+<li class="circle">org.apache.tamaya.examples.custompropertysource.<a href="Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Main</span></a></li>
+<li class="circle">org.apache.tamaya.examples.custompropertysource.<a href="SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySourceProvider</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a>)</li>
 </ul>
 </li>
 </ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -112,16 +141,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/core/propertysource/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/examples/minimal/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -134,11 +155,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-use.html b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-use.html
index 08dd181..f139080 100644
--- a/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/examples/custompropertysource/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.examples.custompropertysource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,25 +76,40 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.examples.custompropertysource" class="title">Uses of Package<br>org.apache.tamaya.examples.custompropertysource</h1>
 </div>
 <div class="contentContainer">No usage of org.apache.tamaya.examples.custompropertysource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/custompropertysource/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/minimal/Main.html b/apidocs/stable/org/apache/tamaya/examples/minimal/Main.html
index ea98f08..e05d6af 100644
--- a/apidocs/stable/org/apache/tamaya/examples/minimal/Main.html
+++ b/apidocs/stable/org/apache/tamaya/examples/minimal/Main.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Main (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Main (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.examples.minimal.Main class">
 <meta name="keywords" content="main()">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Main (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Main (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":9};
+var data = {"i0":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Main.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,6 +84,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -88,18 +103,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.examples.minimal</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.examples.minimal</a></div>
 <h2 title="Class Main" class="title">Class Main</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.examples.minimal.Main</li>
@@ -110,22 +134,21 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">Main</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
 <div class="block">Minimal example showing how to use Tamaya in the simplest possible way.
 
  <p>
   Without any additional configuration Tamaya allows you access via
-  <a href="../../../../../org/apache/tamaya/ConfigurationProvider.html#getConfiguration--"><code>ConfigurationProvider.getConfiguration()</code></a> all configuration values.
+  <a href="../../Configuration.html#current()"><code>Configuration.current()</code></a> all configuration values.
   Accessable are all system environment properties, all system properties,
   and all properties which are found in <code>/META-INF/javaconfiguration.properties</code>
   or <code>/META-INF/javaconfiguration.xml</code>.
  </p></div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><code>EnvironmentPropertySource</code></a>, 
-<a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><code>SystemPropertySource</code></a></dd>
+<dd><a href="../../spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>EnvironmentPropertySource</code></a>, 
+<a href="../../spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>SystemPropertySource</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -134,31 +157,35 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/minimal/Main.html#main-java.lang.String:A-">main</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#main(java.lang.String%5B%5D)">main</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;args)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -166,37 +193,42 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="main-java.lang.String:A-">
+<a id="main(java.lang.String[])">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;main(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre class="methodSignature">public static&nbsp;void&nbsp;main&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;args)</pre>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Main.html">Use</a></li>
@@ -207,16 +239,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -229,6 +253,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -245,10 +272,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/minimal/class-use/Main.html b/apidocs/stable/org/apache/tamaya/examples/minimal/class-use/Main.html
index 8469447..154d897 100644
--- a/apidocs/stable/org/apache/tamaya/examples/minimal/class-use/Main.html
+++ b/apidocs/stable/org/apache/tamaya/examples/minimal/class-use/Main.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.examples.minimal.Main (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.examples.minimal.Main (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.examples.minimal.Main (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.examples.minimal.Main (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Class</a></li>
+<li><a href="../Main.html" title="class in org.apache.tamaya.examples.minimal">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/minimal/class-use/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.examples.minimal.Main" class="title">Uses of Class<br>org.apache.tamaya.examples.minimal.Main</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.examples.minimal.Main</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Class</a></li>
+<li><a href="../Main.html" title="class in org.apache.tamaya.examples.minimal">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/tamaya/examples/minimal/class-use/Main.html" target="_top">Frames</a></li>
-<li><a href="Main.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/minimal/package-summary.html b/apidocs/stable/org/apache/tamaya/examples/minimal/package-summary.html
index a66c4bd..0f65c13 100644
--- a/apidocs/stable/org/apache/tamaya/examples/minimal/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/examples/minimal/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.examples.minimal package">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,23 +77,36 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.examples.minimal</h1>
-<div class="docSummary">
-<div class="block">Example to show the simplest ways to use Tamaya with
- the standard configuration file.</div>
-</div>
-<p>See:&nbsp;<a href="#package.description">Description</a></p>
 </div>
 <div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Example to show the simplest ways to use Tamaya with
+ the standard configuration file.</div>
+</section>
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -89,7 +114,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal">Main</a></td>
+<th class="colFirst" scope="row"><a href="Main.html" title="class in org.apache.tamaya.examples.minimal">Main</a></th>
 <td class="colLast">
 <div class="block">Minimal example showing how to use Tamaya in the simplest possible way.</div>
 </td>
@@ -98,23 +123,20 @@
 </table>
 </li>
 </ul>
-<a name="package.description">
-<!--   -->
-</a>
-<h2 title="Package org.apache.tamaya.examples.minimal Description">Package org.apache.tamaya.examples.minimal Description</h2>
-<div class="block">Example to show the simplest ways to use Tamaya with
- the standard configuration file.</div>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -125,16 +147,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">Prev&nbsp;Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -147,11 +161,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/minimal/package-tree.html b/apidocs/stable/org/apache/tamaya/examples/minimal/package-tree.html
index c567cf1..abaa80a 100644
--- a/apidocs/stable/org/apache/tamaya/examples/minimal/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/examples/minimal/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.examples.minimal Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.examples.minimal Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.examples.minimal Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.examples.minimal Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.examples.minimal</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,25 +101,30 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.examples.minimal.<a href="../../../../../org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal"><span class="typeNameLink">Main</span></a></li>
+<li class="circle">org.apache.tamaya.examples.minimal.<a href="Main.html" title="class in org.apache.tamaya.examples.minimal"><span class="typeNameLink">Main</span></a></li>
 </ul>
 </li>
 </ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -106,16 +135,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-tree.html">Prev</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -128,11 +149,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/examples/minimal/package-use.html b/apidocs/stable/org/apache/tamaya/examples/minimal/package-use.html
index 8803f9f..891ae8f 100644
--- a/apidocs/stable/org/apache/tamaya/examples/minimal/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/examples/minimal/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.examples.minimal (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,25 +76,40 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.examples.minimal" class="title">Uses of Package<br>org.apache.tamaya.examples.minimal</h1>
 </div>
 <div class="contentContainer">No usage of org.apache.tamaya.examples.minimal</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/examples/minimal/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/package-summary.html b/apidocs/stable/org/apache/tamaya/package-summary.html
index 636f099..1205c0c 100644
--- a/apidocs/stable/org/apache/tamaya/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya package">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Package</li>
-<li><a href="../../../org/apache/tamaya/core/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,18 +77,37 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
+<p>@Version("0.4")
+</p>
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya</h1>
 </div>
 <div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">This package contains the Apache Tamaya API.</div>
+</section>
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<table class="typeSummary">
 <caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Interface</th>
@@ -84,30 +115,36 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></td>
-<td class="colLast">
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to another <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<th class="colFirst" scope="row"><a href="ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a></th>
+<td class="colLast">Deprecated.
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;</td>
-<td class="colLast">
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to something else.</div>
+<th class="colFirst" scope="row"><a href="ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;</th>
+<td class="colLast">Deprecated.
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></td>
+<th class="colFirst" scope="row"><a href="Configuration.html" title="interface in org.apache.tamaya">Configuration</a></th>
 <td class="colLast">
-<div class="block">A configuration models a aggregated set current properties, identified by
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
  a unique key, but adds higher level access functions to
- a <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+ a <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></th>
+<td class="colLast">
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
 </td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -115,13 +152,13 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></td>
-<td class="colLast">
-<div class="block">Static access to the <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for the very application.</div>
+<th class="colFirst" scope="row"><a href="ConfigurationProvider.html" title="class in org.apache.tamaya">ConfigurationProvider</a></th>
+<td class="colLast">Deprecated.
+<div class="deprecationComment">Use static methods of <a href="Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a></div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;</td>
+<th class="colFirst" scope="row"><a href="TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;</th>
 <td class="colLast">
 <div class="block">Class for instantiation of objects that represent parameterized types
  with current parameters.</div>
@@ -131,7 +168,7 @@
 </table>
 </li>
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<table class="typeSummary">
 <caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Exception</th>
@@ -139,7 +176,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></td>
+<th class="colFirst" scope="row"><a href="ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></th>
 <td class="colLast">
 <div class="block">Exception class (runtime exception) for configuration issues.</div>
 </td>
@@ -149,16 +186,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -169,16 +209,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Package</li>
-<li><a href="../../../org/apache/tamaya/core/package-summary.html">Next&nbsp;Package</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -191,11 +223,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/package-tree.html b/apidocs/stable/org/apache/tamaya/package-tree.html
index 30c6754..f77aaaa 100644
--- a/apidocs/stable/org/apache/tamaya/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li><a href="../../../org/apache/tamaya/core/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,45 +101,56 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.<a href="../../../org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigurationProvider</span></a></li>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<li class="circle">org.apache.tamaya.<a href="ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigurationProvider</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">RuntimeException</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.<a href="../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigException</span></a></li>
+<li class="circle">org.apache.tamaya.<a href="ConfigException.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigException</span></a></li>
 </ul>
 </li>
 </ul>
 </li>
 </ul>
 </li>
-<li type="circle">org.apache.tamaya.<a href="../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">TypeLiteral</span></a>&lt;T&gt; (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.<a href="TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">TypeLiteral</span></a>&lt;T&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
 </ul>
 </li>
 </ul>
+</section>
+<section role="region">
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.tamaya.<a href="../../../org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigOperator</span></a></li>
-<li type="circle">org.apache.tamaya.<a href="../../../org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigQuery</span></a>&lt;T&gt;</li>
-<li type="circle">org.apache.tamaya.<a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Configuration</span></a></li>
+<li class="circle">org.apache.tamaya.<a href="ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigOperator</span></a></li>
+<li class="circle">org.apache.tamaya.<a href="ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigQuery</span></a>&lt;T&gt;</li>
+<li class="circle">org.apache.tamaya.<a href="Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Configuration</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.<a href="ConfigurationSnapshot.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigurationSnapshot</span></a></li>
 </ul>
+</li>
+</ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -126,16 +161,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li><a href="../../../org/apache/tamaya/core/package-tree.html">Next</a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -148,11 +175,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/package-use.html b/apidocs/stable/org/apache/tamaya/package-use.html
index 556842f..8067d77 100644
--- a/apidocs/stable/org/apache/tamaya/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,67 +76,106 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya" class="title">Uses of Package<br>org.apache.tamaya</h1>
 </div>
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya">
+<li class="blockList"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> used by <a href="../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya</a> used by <a href="package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/ConfigOperator.html#org.apache.tamaya">ConfigOperator</a>
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to another <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<th class="colFirst" scope="row"><a href="class-use/ConfigOperator.html#org.apache.tamaya">ConfigOperator</a></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
+</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/ConfigQuery.html#org.apache.tamaya">ConfigQuery</a>
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to something else.</div>
+<th class="colFirst" scope="row"><a href="class-use/ConfigQuery.html#org.apache.tamaya">ConfigQuery</a></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
+</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/Configuration.html#org.apache.tamaya">Configuration</a>
-<div class="block">A configuration models a aggregated set current properties, identified by
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#org.apache.tamaya">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
  a unique key, but adds higher level access functions to
- a <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+ a <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/TypeLiteral.html#org.apache.tamaya">TypeLiteral</a>
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationSnapshot.html#org.apache.tamaya">ConfigurationSnapshot</a></th>
+<td class="colLast">
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TypeLiteral.html#org.apache.tamaya">TypeLiteral</a></th>
+<td class="colLast">
 <div class="block">Class for instantiation of objects that represent parameterized types
  with current parameters.</div>
 </td>
@@ -132,34 +183,48 @@
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> used by <a href="../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya</a> used by <a href="core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/ConfigOperator.html#org.apache.tamaya.core.internal">ConfigOperator</a>
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to another <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/ConfigQuery.html#org.apache.tamaya.core.internal">ConfigQuery</a>
-<div class="block">Models a function that maps a given <a href="../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> to something else.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/Configuration.html#org.apache.tamaya.core.internal">Configuration</a>
-<div class="block">A configuration models a aggregated set current properties, identified by
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#org.apache.tamaya.core.internal">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
  a unique key, but adds higher level access functions to
- a <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+ a <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya</a> used by <a href="spi/package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#org.apache.tamaya.spi">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
+ a unique key, but adds higher level access functions to
+ a <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/TypeLiteral.html#org.apache.tamaya.core.internal">TypeLiteral</a>
+<th class="colFirst" scope="row"><a href="class-use/TypeLiteral.html#org.apache.tamaya.spi">TypeLiteral</a></th>
+<td class="colLast">
 <div class="block">Class for instantiation of objects that represent parameterized types
  with current parameters.</div>
 </td>
@@ -167,24 +232,49 @@
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList"><a id="org.apache.tamaya.spisupport">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> used by <a href="../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya</a> used by <a href="spisupport/package-summary.html">org.apache.tamaya.spisupport</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/Configuration.html#org.apache.tamaya.spi">Configuration</a>
-<div class="block">A configuration models a aggregated set current properties, identified by
- a unique key, but adds higher level access functions to
- a <a href="../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+<th class="colFirst" scope="row"><a href="class-use/ConfigOperator.html#org.apache.tamaya.spisupport">ConfigOperator</a></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>UnaryOperator</code></a></div>
+</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../org/apache/tamaya/class-use/TypeLiteral.html#org.apache.tamaya.spi">TypeLiteral</a>
+<th class="colFirst" scope="row"><a href="class-use/ConfigQuery.html#org.apache.tamaya.spisupport">ConfigQuery</a></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink"><code>Function</code></a></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#org.apache.tamaya.spisupport">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration models an aggregated setPropertyValue of current properties, identified by
+ a unique key, but adds higher level access functions to
+ a <a href="spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationSnapshot.html#org.apache.tamaya.spisupport">ConfigurationSnapshot</a></th>
+<td class="colLast">
+<div class="block">An immutable configuration snapshot containing the given keys only.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TypeLiteral.html#org.apache.tamaya.spisupport">TypeLiteral</a></th>
+<td class="colLast">
 <div class="block">Class for instantiation of objects that represent parameterized types
  with current parameters.</div>
 </td>
@@ -194,16 +284,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -214,16 +307,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../index.html?org/apache/tamaya/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -236,11 +321,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ChangeSupport.html b/apidocs/stable/org/apache/tamaya/spi/ChangeSupport.html
new file mode 100644
index 0000000..48ebc2c
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/ChangeSupport.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ChangeSupport (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spi.ChangeSupport class">
+<meta name="keywords" content="values()">
+<meta name="keywords" content="valueOf()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ChangeSupport (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ChangeSupport.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
+<h2 title="Enum ChangeSupport" class="title">Enum ChangeSupport</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spi.ChangeSupport</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public enum <span class="typeNameLabel">ChangeSupport</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&gt;</pre>
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#IMMUTABLE">IMMUTABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">Configuration properties of this property source cannot change for the lifetime of this <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUPPORTED">SUPPORTED</a></span></code></th>
+<td class="colLast">
+<div class="block">Config change is supported, this config source supports registering ConfigChangeListeners.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNSUPPORTED">UNSUPPORTED</a></span></code></th>
+<td class="colLast">
+<div class="block">Config change is not supported.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="SUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUPPORTED</h4>
+<pre>public static final&nbsp;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a> SUPPORTED</pre>
+<div class="block">Config change is supported, this config source supports registering ConfigChangeListeners.
+ <a href="PropertySource.html#addChangeListener(java.util.function.BiConsumer)"><code>PropertySource.addChangeListener(BiConsumer)</code></a> .</div>
+</li>
+</ul>
+<a id="UNSUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNSUPPORTED</h4>
+<pre>public static final&nbsp;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a> UNSUPPORTED</pre>
+<div class="block">Config change is not supported. Configuration values may change, though changes are not reported.</div>
+</li>
+</ul>
+<a id="IMMUTABLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IMMUTABLE</h4>
+<pre>public static final&nbsp;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a> IMMUTABLE</pre>
+<div class="block">Configuration properties of this property source cannot change for the lifetime of this <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ChangeSupport c : ChangeSupport.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ChangeSupport.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ClassloaderAware.html b/apidocs/stable/org/apache/tamaya/spi/ClassloaderAware.html
new file mode 100644
index 0000000..6e2414b
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/ClassloaderAware.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ClassloaderAware (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spi.ClassloaderAware interface">
+<meta name="keywords" content="init()">
+<meta name="keywords" content="getClassLoader()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClassloaderAware (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClassloaderAware.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
+<h2 title="Interface ClassloaderAware" class="title">Interface ClassloaderAware</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></code>, <code><a href="../spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></code>, <code><a href="../core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ClassloaderAware</span></pre>
+<div class="block"><p>This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration. </p></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, 
+<a href="PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>Implementation Requirements
+ Implementations of this interface must be
+ 
+ Thread safe.
+ </code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassLoader()">getClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the currently assigned cassloader instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(java.lang.ClassLoader)">init</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Initializes this instance with the classloader to be used.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">void&nbsp;init&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block">Initializes this instance with the classloader to be used.
+ This method is called by the implementation when the instance is loaded
+ through the <a href="ServiceContextManager.html" title="class in org.apache.tamaya.spi"><code>ServiceContextManager</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader, not not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClassLoader()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getClassLoader</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getClassLoader()</pre>
+<div class="block">Get the currently assigned cassloader instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the classloader, never null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClassloaderAware.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ConfigurationBuilder.html b/apidocs/stable/org/apache/tamaya/spi/ConfigurationBuilder.html
new file mode 100644
index 0000000..8a2bab7
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/ConfigurationBuilder.html
@@ -0,0 +1,1163 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spi.ConfigurationBuilder interface">
+<meta name="keywords" content="setClassLoader()">
+<meta name="keywords" content="getClassLoader()">
+<meta name="keywords" content="setServiceContext()">
+<meta name="keywords" content="setConfiguration()">
+<meta name="keywords" content="setContext()">
+<meta name="keywords" content="addPropertySources()">
+<meta name="keywords" content="setMeta()">
+<meta name="keywords" content="addDefaultPropertySources()">
+<meta name="keywords" content="removePropertySources()">
+<meta name="keywords" content="getPropertySources()">
+<meta name="keywords" content="getPropertyFilters()">
+<meta name="keywords" content="getPropertyConverter()">
+<meta name="keywords" content="increasePriority()">
+<meta name="keywords" content="decreasePriority()">
+<meta name="keywords" content="highestPriority()">
+<meta name="keywords" content="lowestPriority()">
+<meta name="keywords" content="addPropertyFilters()">
+<meta name="keywords" content="addDefaultPropertyFilters()">
+<meta name="keywords" content="removePropertyFilters()">
+<meta name="keywords" content="addPropertyConverters()">
+<meta name="keywords" content="addDefaultPropertyConverters()">
+<meta name="keywords" content="removePropertyConverters()">
+<meta name="keywords" content="sortPropertySources()">
+<meta name="keywords" content="sortPropertyFilter()">
+<meta name="keywords" content="sortPropertyConverter()">
+<meta name="keywords" content="build()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":18,"i5":6,"i6":18,"i7":6,"i8":18,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":18,"i21":6,"i22":18,"i23":6,"i24":18,"i25":6,"i26":18,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfigurationBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
+<h2 title="Interface ConfigurationBuilder" class="title">Interface ConfigurationBuilder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></code>, <code><a href="../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ConfigurationBuilder</span></pre>
+<div class="block">A builder for creating new instances of <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.
+ Builders can be obtained in exactly two ways:
+ <ol>
+     <li>By accessing a preinitialized builder from an existing <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>,
+     by calling <a href="../Configuration.html#toBuilder()"><code>Configuration.toBuilder()</code></a>.</li>
+     <li>By accessing an empty builder instance from
+     <a href="../ConfigurationProvider.html#getConfigurationBuilder()"><code>ConfigurationProvider.getConfigurationBuilder()</code></a>.</li>
+ </ol>
+ After all changes are applied to a builder a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance can
+ be created and can be applied by calling
+ <a href="#build()"><code>build()</code></a>}.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultPropertyConverters()">addDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add all auto-discoverable property converters to the context built.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultPropertyFilters()">addDefaultPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add all auto-discoverable property filters to the context built.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultPropertySources()">addDefaultPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds all registered (default) property sources to the context built.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>default <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">addPropertyFilters</a></span>&#8203;(<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertySources(java.util.Collection)">addPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for programmatically adding <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertySources(org.apache.tamaya.spi.PropertySource...)">addPropertySources</a></span>&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the data in this builder.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></span>&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Decreases the priority of the given property source, by moving it towards the start
+ of the chain of property sources.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassLoader()">getClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the classloader used by this builder.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverter()">getPropertyConverter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current registered property converters.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current chain of property filters.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current chain of property sources.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></span>&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Increases the priority of the given property source to be maximal, by moving it to
+ the tail of the of property source chain.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></span>&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Increases the priority of the given property source, by moving it towards the end
+ of the chain of property sources.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></span>&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Decreases the priority of the given property source to be minimal, by moving it to
+ the start of the chain of property source chain.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code></th>
+<td class="colLast">
+<div class="block">Removes all converters for the given type, which actually renders a given type
+ unsupported for type conversion.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filter)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>default <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">removePropertyFilters</a></span>&#8203;(<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertySources(java.util.Collection)">removePropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">Removes the given property sources, if existing.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>default <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertySources(org.apache.tamaya.spi.PropertySource...)">removePropertySources</a></span>&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">Removes the given property sources, if existing.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setClassLoader(java.lang.ClassLoader)">setClassLoader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Set the classloader to be used for loading of configuration resources, equals to
+ <code>setServiceContext(ServiceContextManager.getServiceContext(classLoader))</code>.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>default <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></span>&#8203;(<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds (overrides existing value) the given sources as property sources.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Adds (overrides existing value with same same keys) the given sources as property sources.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></span>&#8203;(<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Sets the ServiceContext to be used.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property converters using the given comparator.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property filters using the given comparator.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortPropertySources(java.util.Comparator)">sortPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property sources using the given comparator.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setClassLoader(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setClassLoader</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setClassLoader&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block">Set the classloader to be used for loading of configuration resources, equals to
+ <code>setServiceContext(ServiceContextManager.getServiceContext(classLoader))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the classloader, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getClassLoader()"><code>getClassLoader()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getClassLoader()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClassLoader</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getClassLoader()</pre>
+<div class="block">Get the classloader used by this builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the classloader, never null.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setClassLoader(java.lang.ClassLoader)"><code>setClassLoader(ClassLoader)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setServiceContext(org.apache.tamaya.spi.ServiceContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setServiceContext</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setServiceContext&#8203;(<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</pre>
+<div class="block">Sets the ServiceContext to be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceContext</code> - the serviceContext, nuo null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="setConfiguration(org.apache.tamaya.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre class="methodSignature">default&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setConfiguration&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="block">Init this builder instance with the given <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance. This
+ method will use any existing property sources, filters, converters and the combination
+ policy of the given <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> and initialize the current builder
+ with them. All previous property sources, filters, converters and the combination
+ policy of this instance will be replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setContext(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setContext</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setContext&#8203;(<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Init this builder instance with the given <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance. This
+ method will use any existing property sources, filters, converters and the combination
+ policy of the given <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> and initialize the current builder
+ with them. All previous property sources, filters, converters and the combination
+ policy of this instance will be replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertySources(org.apache.tamaya.spi.PropertySource...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertySources</h4>
+<pre class="methodSignature">default&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertySources&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</pre>
+<div class="block">This method can be used for adding <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.
+ Hereby the property source is added to the tail of property sources with
+ lowest priority  regardless of its current ordinal value. To sort the property
+ sources based on their ordinals call <a href="#sortPropertySources(java.util.Comparator)"><code>sortPropertySources(java.util.Comparator&lt;org.apache.tamaya.spi.PropertySource&gt;)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySources</code> - the <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s to addPropertyValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If a property source with a given name already
+ exists.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Adds (overrides existing value) the given sources as property sources.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null,</dd>
+<dd><code>key</code> - the key, not null.</dd>
+<dd><code>value</code> - the value, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current configuration builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</pre>
+<div class="block">Adds (overrides existing value with same same keys) the given sources as property sources.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null,</dd>
+<dd><code>metaData</code> - the metadata, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current configuration builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertySources(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertySources</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertySources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</pre>
+<div class="block">This method can be used for programmatically adding <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.
+ Hereby the property source is added to the tail of property sources with
+ lowest priority regardless of its current ordinal value. To sort the property
+ sources based on their ordinals call <a href="#sortPropertySources(java.util.Comparator)"><code>sortPropertySources(java.util.Comparator&lt;org.apache.tamaya.spi.PropertySource&gt;)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySources</code> - the <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s to addPropertyValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If a property source with a given name already
+ exists.</dd>
+</dl>
+</li>
+</ul>
+<a id="addDefaultPropertySources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDefaultPropertySources</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addDefaultPropertySources()</pre>
+<div class="block">Adds all registered (default) property sources to the context built. The sources are ordered
+ based on their ordinal values and added to the chain of property sources with
+ higher priority.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertySources(org.apache.tamaya.spi.PropertySource...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertySources</h4>
+<pre class="methodSignature">default&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertySources&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</pre>
+<div class="block">Removes the given property sources, if existing. The existing order of property
+ sources is preserved.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySources</code> - the property sources to remove, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertySources(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertySources</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertySources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</pre>
+<div class="block">Removes the given property sources, if existing. The existing order of property
+ sources is preserved.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySources</code> - the property sources to remove, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertySources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertySources</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<div class="block">Access the current chain of property sources. Items at the end of the createList have
+ precedence/higher significance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property source chain, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyFilters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyFilters</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;getPropertyFilters()</pre>
+<div class="block">Access the current chain of property filters. Items at the end of the createList have
+ precedence/higher significance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property filter chain, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyConverter()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyConverter</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;getPropertyConverter()</pre>
+<div class="block">Access the current registered property converters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current registered property converters.</dd>
+</dl>
+</li>
+</ul>
+<a id="increasePriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>increasePriority</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;increasePriority&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Increases the priority of the given property source, by moving it towards the end
+ of the chain of property sources. If the property source given is already at the end
+ this method has no effect. This operation does not change any ordinal values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be incresed regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If no such property source exists in the current
+ chain.</dd>
+</dl>
+</li>
+</ul>
+<a id="decreasePriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decreasePriority</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;decreasePriority&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Decreases the priority of the given property source, by moving it towards the start
+ of the chain of property sources. If the property source given is already the first
+ this method has no effect. This operation does not change any ordinal values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be decresed regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If no such property source exists in the current
+ chain.</dd>
+</dl>
+</li>
+</ul>
+<a id="highestPriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>highestPriority</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;highestPriority&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Increases the priority of the given property source to be maximal, by moving it to
+ the tail of the of property source chain. If the property source given is
+ already the last item this method has no effect. This operation does not change
+ any ordinal values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be maximized regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If no such property source exists in the current
+ chain.</dd>
+</dl>
+</li>
+</ul>
+<a id="lowestPriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lowestPriority</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;lowestPriority&#8203;(<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Decreases the priority of the given property source to be minimal, by moving it to
+ the start of the chain of property source chain. If the property source given is
+ already the first item this method has no effect. This operation does not change
+ any ordinal values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be minimized regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If no such property source exists in the current
+ chain.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyFilters</h4>
+<pre class="methodSignature">default&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertyFilters&#8203;(<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</pre>
+<div class="block">Adds the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority. The ordering of existing
+ property filters remains unchanged. To sort the property
+ filters call <a href="#sortPropertyFilter(java.util.Comparator)"><code>sortPropertyFilter(java.util.Comparator&lt;org.apache.tamaya.spi.PropertyFilter&gt;)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filters</code> - the filters to addPropertyValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyFilters(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyFilters</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertyFilters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</pre>
+<div class="block">Adds the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority. The ordering of existing
+ property filters remains unchanged. To sort the property
+ filters call <a href="#sortPropertyFilter(java.util.Comparator)"><code>sortPropertyFilter(java.util.Comparator&lt;org.apache.tamaya.spi.PropertyFilter&gt;)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filters</code> - the filters to addPropertyValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addDefaultPropertyFilters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDefaultPropertyFilters</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addDefaultPropertyFilters()</pre>
+<div class="block">Add all auto-discoverable property filters to the context built.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyFilters</h4>
+<pre class="methodSignature">default&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyFilters&#8203;(<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</pre>
+<div class="block">Removes the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing. The order of the remaining
+ filters is preserved.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filters</code> - the filter to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyFilters(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyFilters</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyFilters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filter)</pre>
+<div class="block">Removes the given <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing. The order of the remaining
+ filters is preserved.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - the filter to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyConverters</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                                                       <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</pre>
+<div class="block">This method can be used for adding <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.
+ Converters are added at the end after any existing converters.
+ For converters already registered for the current target type the
+ method has no effect.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type for which the converter is used</dd>
+<dd><code>propertyConverters</code> - the <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s to addPropertyValue for this type</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyConverters</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</pre>
+<div class="block">This method can be used for adding <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.
+ Converters are added at the end after any existing converters.
+ For converters already registered for the current target type the
+ method has no effect.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type for which the converter is used</dd>
+<dd><code>propertyConverters</code> - the PropertyConverters to addPropertyValue for this type</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addDefaultPropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDefaultPropertyConverters</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addDefaultPropertyConverters()</pre>
+<div class="block">Add all auto-discoverable property converters to the context built.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyConverters</h4>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                                                          <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</pre>
+<div class="block">Removes the given <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances for the given type,
+ if existing.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type which the converter is used</dd>
+<dd><code>propertyConverters</code> - the converter to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyConverters</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</pre>
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type which the converter is used</dd>
+<dd><code>propertyConverters</code> - the converter to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyConverters(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyConverters</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</pre>
+<div class="block">Removes all converters for the given type, which actually renders a given type
+ unsupported for type conversion.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type which the converter is used</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="sortPropertySources(java.util.Comparator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sortPropertySources</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;sortPropertySources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</pre>
+<div class="block">Sorts the current registered property sources using the given comparator.
+
+ <p>NOTE: property sources at the beginning have minimal significance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comparator</code> - the comparator to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="sortPropertyFilter(java.util.Comparator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sortPropertyFilter</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;sortPropertyFilter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</pre>
+<div class="block">Sorts the current registered property filters using the given comparator.
+
+ <p>NOTE: property filters at the beginning have minimal significance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comparator</code> - the comparator to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="sortPropertyConverter(java.util.Comparator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sortPropertyConverter</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;sortPropertyConverter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</pre>
+<div class="block">Sorts the current registered property converters using the given comparator.
+
+ <p>NOTE: property converters at the beginning have minimal significance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comparator</code> - the comparator to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;build()</pre>
+<div class="block">Builds a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> based on the data in this builder. The ordering of property
+ sources and property filters is not changed, regardless of their ordinals. For ensure a certain
+ ordering/significance use <a href="#sortPropertyFilter(java.util.Comparator)"><code>sortPropertyFilter(Comparator)</code></a> and/or <a href="#sortPropertySources(java.util.Comparator)"><code>sortPropertySources(Comparator)</code></a>
+ before building the context.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the final configuration, never null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfigurationBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ConfigurationContext.html b/apidocs/stable/org/apache/tamaya/spi/ConfigurationContext.html
index 7e4535b..ee86ffb 100644
--- a/apidocs/stable/org/apache/tamaya/spi/ConfigurationContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/ConfigurationContext.html
@@ -1,52 +1,65 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConfigurationContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConfigurationContext (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.ConfigurationContext interface">
-<meta name="keywords" content="addPropertySources()">
+<meta name="keywords" content="EMPTY">
+<meta name="keywords" content="getMetaData()">
+<meta name="keywords" content="getServiceContext()">
 <meta name="keywords" content="getPropertySources()">
 <meta name="keywords" content="getPropertySource()">
-<meta name="keywords" content="addPropertyConverter()">
 <meta name="keywords" content="getPropertyConverters()">
 <meta name="keywords" content="getPropertyFilters()">
-<meta name="keywords" content="getPropertyValueCombinationPolicy()">
-<meta name="keywords" content="toBuilder()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConfigurationContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConfigurationContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":38,"i1":38,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigurationContext.html">Use</a></li>
@@ -57,16 +70,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConfigurationContext.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -79,29 +90,41 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface ConfigurationContext" class="title">Interface ConfigurationContext</h2>
 </div>
 <div class="contentContainer">
@@ -110,158 +133,206 @@
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></dd>
+<dd><code><a href="../spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public interface <span class="typeNameLabel">ConfigurationContext</span></pre>
 <div class="block">Central SPI for programmatically dealing with the setup of the configuration system.
- This includes adding and enlisting <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s,
- managing <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s, ConfigFilters, etc.</div>
+ This includes adding and enlisting <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s,
+ managing <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s, ConfigFilters, etc.</div>
 </li>
 </ul>
 </div>
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ========== METHOD SUMMARY =========== -->
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                    <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;propertyConverter)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources</a></span>(<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>
-<div class="block">
- This method returns the Map of registered PropertyConverters
- per type.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>
-<div class="block">
- This method returns the registered PropertyConverters for a given type.</div>
-</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyFilters--">getPropertyFilters</a></span>()</code>
-<div class="block">Access the current PropertyFilter instances.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertySource-java.lang.String-">getPropertySource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
-<div class="block">Access a <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
-</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertySources--">getPropertySources</a></span>()</code>
-<div class="block">This method returns the current list of registered PropertySources ordered via their ordinal.</div>
-</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi">PropertyValueCombinationPolicy</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyValueCombinationPolicy--">getPropertyValueCombinationPolicy</a></span>()</code>
-<div class="block">Access the <a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a> used to evaluate the final
- property values.</div>
-</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#toBuilder--">toBuilder</a></span>()</code>
-<div class="block">Creates a <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> preinitialized with the data from this instance.</div>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">An empty configuration context.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetaData(java.lang.String)">getMetaData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Get the metadata evaluated for this configuration.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ This method returns the Map of registered <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
+ per type.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">
+ This method returns the registered <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySource(java.lang.String)">getPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Access a <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method returns the current createList of registered <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s ordered via their ordinal.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServiceContext()">getServiceContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the underlying <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
 </li>
 </ul>
 </div>
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ METHOD DETAIL ========== -->
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="EMPTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>static final&nbsp;<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> EMPTY</pre>
+<div class="block">An empty configuration context. The implementation can be shared and is thread safe.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="addPropertySources-org.apache.tamaya.spi.PropertySource...-">
+<a id="getMetaData(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>addPropertySources</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-void&nbsp;addPropertySources(<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-<div class="block">This method can be used for programmatically adding <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.
- It is not needed for normal 'usage' by end users, but only for Extension Developers!</div>
+<h4>getMetaData</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMetaData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Get the metadata evaluated for this configuration.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>propertySources</code> - the PropertySources to add</dd>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#toBuilder--"><code>toBuilder()</code></a></dd>
+<dd><code>key</code> - the property key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the metadata fpr this key, never null.</dd>
 </dl>
 </li>
 </ul>
-<a name="getPropertySources--">
+<a id="getServiceContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServiceContext</h4>
+<pre class="methodSignature"><a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;getServiceContext()</pre>
+<div class="block">Access the underlying <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service context, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertySources()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getPropertySources</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
-<div class="block">This method returns the current list of registered PropertySources ordered via their ordinal.
- PropertySources with a lower ordinal come last. The PropertySource with the
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<div class="block">This method returns the current createList of registered <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s ordered via their ordinal.
+ <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s with a lower ordinal come last. The <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> with the
  highest ordinal comes first.
- If two PropertySources have the same ordinal number they will get sorted
+ If two <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s have the same ordinal number they will current sorted
  using their class name just to ensure the user at least gets the same ordering
  after a JVM restart, hereby names before are added last.
- PropertySources are loaded when this method is called the first time, which basically is
+ <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s are loaded when this method is called the first time, which basically is
  when the first time configuration is accessed.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a sorted list of registered PropertySources.  The returned list need not be modifiable</dd>
+<dd>a sorted createList of registered <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.  The returned createList need not be modifiable</dd>
 </dl>
 </li>
 </ul>
-<a name="getPropertySource-java.lang.String-">
+<a id="getPropertySource(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getPropertySource</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;getPropertySource(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
-<div class="block">Access a <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
+<pre class="methodSignature"><a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;getPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Access a <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>name</code> - the propoerty source's name, not <code>null</code>.</dd>
@@ -270,41 +341,18 @@
 </dl>
 </li>
 </ul>
-<a name="addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>addPropertyConverter</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-&lt;T&gt;&nbsp;void&nbsp;addPropertyConverter(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                                          <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;propertyConverter)</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-<div class="block">This method can be used for programmatically adding <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.
- It is not needed for normal 'usage' by end users, but only for Extension Developers!</div>
-<dl>
-<dt><span class="paramLabel">Type Parameters:</span></dt>
-<dd><code>T</code> - the type of the type literal</dd>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>type</code> - the type which the converter is for</dd>
-<dd><code>propertyConverter</code> - the PropertyConverters to add for this type</dd>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html#toBuilder--"><code>toBuilder()</code></a></dd>
-</dl>
-</li>
-</ul>
-<a name="getPropertyConverters--">
+<a id="getPropertyConverters()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getPropertyConverters</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;getPropertyConverters()</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;getPropertyConverters()</pre>
 <div class="block"><p>
- This method returns the Map of registered PropertyConverters
+ This method returns the Map of registered <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
  per type.
- The List for each type is ordered via their <a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation"><code>Priority</code></a> and
- cladd name.
+ The List for each type is ordered via their <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> and
+ class name.
  </p>
 
  <p>A simplified scenario could be like:</p>
@@ -317,42 +365,42 @@
  </pre></div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>map with sorted list of registered PropertySources per type.</dd>
+<dd>mapProperties with sorted createList of registered <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s per type.</dd>
 </dl>
 </li>
 </ul>
-<a name="getPropertyConverters-org.apache.tamaya.TypeLiteral-">
+<a id="getPropertyConverters(org.apache.tamaya.TypeLiteral)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getPropertyConverters</h4>
-<pre>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;getPropertyConverters(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;getPropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
 <div class="block"><p>
- This method returns the registered PropertyConverters for a given type.
- The List for each type is ordered via their <a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation"><code>Priority</code></a>.
+ This method returns the registered <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.
+ The List for each type is ordered via their <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a>.
  </p>
 
  <p>
- PropertyConverters with a higher Priority come first. The PropertyConverter with the
- lowest Priority comes last.
- If two PropertyConverter have the same ordinal number they will get sorted
+ <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s with a higher <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> come first.
+ The <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> with the lowest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> comes last.
+ If two <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s have the same ordinal number they will current sorted
  using their class name just to ensure the user at least gets the same ordering
  after a JVM restart.
  </p>
 
  <p>
- Additionally if a PropertyProvider is accessed, which is not registered the implementation
- should try to figure out, if there could be a default implementation as follows:</p>
+ Additionally, if a PropertyProvider is accessed which is not registered, the implementation
+ should try to figure out if there could be a default implementation as follows:</p>
  <ol>
-     <li>Look for static factory methods: <code>of(String), valueOf(String), getInstance(String),
+     <li>Look for static factory methods: <code>of(String), createValue(String), getInstance(String),
      instanceOf(String), fomr(String)</code></li>
      <li>Look for a matching constructor: <code>T(String)</code>.</li>
  </ol>
 
  <p>
  If a correspoding factory method or constructor could be found, a corresponding
- PropertyConverter should be created and registered automatically for the given
+ <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> should be created and registered automatically for the given
  type.
  </p>
 
@@ -368,7 +416,7 @@
 
  <p>
  The converters returned for a type should be used as a chain, whereas the result of the
- first converter that is able to convert the configured value, is taken as the chain's result.
+ first converters that is able to convert the configured createValue, is taken as the chain's result.
  No more converters are called after a converter has successfully converted the input into
  the required target type.
  </p></div>
@@ -376,72 +424,47 @@
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the type literal</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>type</code> - type of the desired converter</dd>
+<dd><code>type</code> - type of the desired converters</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a sorted list of registered PropertySources per type.</dd>
+<dd>a sorted createList of registered <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s per type.</dd>
 </dl>
 </li>
 </ul>
-<a name="getPropertyFilters--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getPropertyFilters</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;getPropertyFilters()</pre>
-<div class="block">Access the current PropertyFilter instances.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the list of registered PropertyFilters, never null.</dd>
-</dl>
-</li>
-</ul>
-<a name="getPropertyValueCombinationPolicy--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getPropertyValueCombinationPolicy</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi">PropertyValueCombinationPolicy</a>&nbsp;getPropertyValueCombinationPolicy()</pre>
-<div class="block">Access the <a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a> used to evaluate the final
- property values.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the <a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a> used, never null.</dd>
-</dl>
-</li>
-</ul>
-<a name="toBuilder--">
+<a id="getPropertyFilters()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>toBuilder</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a>&nbsp;toBuilder()</pre>
-<div class="block">Creates a <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> preinitialized with the data from this instance.</div>
+<h4>getPropertyFilters</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;getPropertyFilters()</pre>
+<div class="block">Access the current <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new builder instance, never null.</dd>
+<dd>the createList of registered <a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s, never null.</dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigurationContext.html">Use</a></li>
@@ -452,16 +475,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev&nbsp;Class</li>
-<li><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConfigurationContext.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -474,26 +489,31 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ConfigurationProviderSpi.html b/apidocs/stable/org/apache/tamaya/spi/ConfigurationProviderSpi.html
index 5da5881..16387c4 100644
--- a/apidocs/stable/org/apache/tamaya/spi/ConfigurationProviderSpi.html
+++ b/apidocs/stable/org/apache/tamaya/spi/ConfigurationProviderSpi.html
@@ -1,52 +1,64 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConfigurationProviderSpi (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConfigurationProviderSpi (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.ConfigurationProviderSpi interface">
 <meta name="keywords" content="getConfiguration()">
 <meta name="keywords" content="createConfiguration()">
-<meta name="keywords" content="getConfigurationContextBuilder()">
+<meta name="keywords" content="getConfigurationBuilder()">
 <meta name="keywords" content="setConfiguration()">
+<meta name="keywords" content="releaseConfiguration()">
 <meta name="keywords" content="isConfigurationSettable()">
-<meta name="keywords" content="getConfigurationContext()">
-<meta name="keywords" content="setConfigurationContext()">
-<meta name="keywords" content="isConfigurationContextSettable()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConfigurationProviderSpi (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConfigurationProviderSpi (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":38,"i3":6,"i4":38,"i5":6,"i6":6,"i7":38};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var data = {"i0":6,"i1":50,"i2":6,"i3":6,"i4":18,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigurationProviderSpi.html">Use</a></li>
@@ -57,16 +69,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConfigurationProviderSpi.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProviderSpi.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -79,6 +89,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -95,13 +108,22 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface ConfigurationProviderSpi" class="title">Interface ConfigurationProviderSpi</h2>
 </div>
 <div class="contentContainer">
@@ -110,13 +132,12 @@
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></dd>
+<dd><code><a href="../core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public interface <span class="typeNameLabel">ConfigurationProviderSpi</span></pre>
-<div class="block">SPI that must be implemented to provide the component that manages all <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
- instances in a system. In SE this may be a true singleton containing exact one <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
+<div class="block">SPI that must be implemented to provide the component that manages all <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
+ instances in a system. In SE this may be a true singleton containing exact one <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
  instance, whereas in Java EE and other more complex environments instances may be returned depending the current
  runtime context.</div>
 </li>
@@ -126,76 +147,77 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Create a <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfiguration--">getConfiguration</a></span>()</code>
-<div class="block">Access the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<td class="colFirst"><code>default <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#getConfiguration(java.lang.ClassLoader)"><code>getConfiguration(ClassLoader)</code></a> instead of.</div>
+</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Will be removed in favour of <a href="../../../../org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a>.</span></div>
-</div>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration(java.lang.ClassLoader)">getConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Access the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationContextBuilder--">getConfigurationContextBuilder</a></span>()</code>
-<div class="block">Creates a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> instance.</div>
+<td class="colFirst"><code><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurationBuilder()">getConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationContextSettable--">isConfigurationContextSettable</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable--"><code>isConfigurationSettable()</code></a></span></div>
-</div>
+<td class="colFirst"><code>default boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConfigurationSettable(java.lang.ClassLoader)">isConfigurationSettable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">Method that allows to determine if a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
+ programmatically.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable--">isConfigurationSettable</a></span>()</code>
-<div class="block">Method that allows to determine if a new <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
- programmatically.</div>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#releaseConfiguration(java.lang.ClassLoader)">releaseConfiguration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">This method allows to release a <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for a classloader.</div>
 </td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code>
-<div class="block">This method allows to replace the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</code></th>
+<td class="colLast">
+<div class="block">This method allows to replace the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>setConfiguration(Configuration)</code></a></span></div>
-</div>
-</td>
-</tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -203,33 +225,54 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getConfiguration--">
+<a id="getConfiguration(java.lang.ClassLoader)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration()</pre>
-<div class="block">Access the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<pre class="methodSignature"><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block">Access the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
 <dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the classloader to be used.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance, never null.</dd>
+<dd>the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance, never null.</dd>
 </dl>
 </li>
 </ul>
-<a name="createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">
+<a id="getConfiguration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+default&nbsp;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#getConfiguration(java.lang.ClassLoader)"><code>getConfiguration(ClassLoader)</code></a> instead of.</div>
+</div>
+<div class="block">Access the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createConfiguration</h4>
-<pre><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;createConfiguration(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
-<div class="block">Create a <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context. The configuration
+<pre class="methodSignature"><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;createConfiguration&#8203;(<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Create a <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context. The configuration
  created hereby must respect the artifacts provided by its context (property sources,
  filters, converters, policies etc), including their ordering and significance.</div>
 <dl>
@@ -240,132 +283,102 @@
 </dl>
 </li>
 </ul>
-<a name="getConfigurationContextBuilder--">
+<a id="getConfigurationBuilder()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getConfigurationContextBuilder</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a>&nbsp;getConfigurationContextBuilder()</pre>
-<div class="block">Creates a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> instance.</div>
+<h4>getConfigurationBuilder</h4>
+<pre class="methodSignature"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;getConfigurationBuilder()</pre>
+<div class="block">Creates a new <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a>, never null.</dd>
+<dd>a new <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>, never null.</dd>
 </dl>
 </li>
 </ul>
-<a name="setConfiguration-org.apache.tamaya.Configuration-">
+<a id="setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setConfiguration</h4>
-<pre>void&nbsp;setConfiguration(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
-<div class="block">This method allows to replace the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
+<pre class="methodSignature">void&nbsp;setConfiguration&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</pre>
+<div class="block">This method allows to replace the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> with a new
  instance. This can be used to update the configuration with a new one, e.g. because some of the
  data has changed and must be updated. It is the responsibility of the ConfigurationProvider to trigger
- corresponding update events for the current <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+ corresponding update events for the current <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>config</code> - the new Configuration to be applied.</dd>
+<dd><code>classloader</code> - the classloader to be used.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the current provider is read-only.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the current provider is read-only.</dd>
 </dl>
 </li>
 </ul>
-<a name="isConfigurationSettable--">
+<a id="releaseConfiguration(java.lang.ClassLoader)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>isConfigurationSettable</h4>
-<pre>boolean&nbsp;isConfigurationSettable()</pre>
-<div class="block">Method that allows to determine if a new <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
- programmatically.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>true, if <a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>setConfiguration(org.apache.tamaya.Configuration)</code></a> is supported
- by the current implementation.</dd>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>setConfiguration(org.apache.tamaya.Configuration)</code></a></dd>
-</dl>
-</li>
-</ul>
-<a name="getConfigurationContext--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getConfigurationContext</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getConfigurationContext()</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Will be removed in favour of <a href="../../../../org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a>.</span></div>
-<div class="block">Get access to the current <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the current <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>, never null.</dd>
-</dl>
-</li>
-</ul>
-<a name="setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setConfigurationContext</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-void&nbsp;setConfigurationContext(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>setConfiguration(Configuration)</code></a></span></div>
-<div class="block">This method allows to replace the current <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> with a new
- instance. This can be used to update the context with a new one, e.g. because some of the configuration
- data has changed and must be updated. It is the responsibility of the ConfigurationProvider to trigger
- corresponding update event for the current <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> or
- <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+<h4>releaseConfiguration</h4>
+<pre class="methodSignature"><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;releaseConfiguration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</pre>
+<div class="block">This method allows to release a <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> for a classloader.
+ This can be used to refresh the configuration with a new one, e.g. because some of the
+ data has changed and must be updated.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>context</code> - the new ConfigurationContext to be applied.</dd>
+<dd><code>classloader</code> - the classloader to be used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration instance released, or <code>null</code>.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the current provider is read-only.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the current provider is read-only.</dd>
 </dl>
 </li>
 </ul>
-<a name="isConfigurationContextSettable--">
+<a id="isConfigurationSettable(java.lang.ClassLoader)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>isConfigurationContextSettable</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-boolean&nbsp;isConfigurationContextSettable()</pre>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#isConfigurationSettable--"><code>isConfigurationSettable()</code></a></span></div>
-<div class="block">Method that allows to determine if a new <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> can be applied
+<h4>isConfigurationSettable</h4>
+<pre class="methodSignature">default&nbsp;boolean&nbsp;isConfigurationSettable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classloader)</pre>
+<div class="block">Method that allows to determine if a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> can be applied
  programmatically.</div>
 <dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classloader</code> - the target classloader</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>true, if <a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-"><code>setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext)</code></a> is supported
+<dd>true, if <a href="#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"><code>setConfiguration(org.apache.tamaya.Configuration, ClassLoader)</code></a> is supported
  by the current implementation.</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-"><code>setConfigurationContext(org.apache.tamaya.spi.ConfigurationContext)</code></a></dd>
+<dd><a href="#setConfiguration(org.apache.tamaya.Configuration,java.lang.ClassLoader)"><code>setConfiguration(org.apache.tamaya.Configuration, ClassLoader classloader)</code></a></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConfigurationProviderSpi.html">Use</a></li>
@@ -376,16 +389,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConfigurationProviderSpi.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProviderSpi.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -398,6 +403,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -414,10 +422,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ConversionContext.Builder.html b/apidocs/stable/org/apache/tamaya/spi/ConversionContext.Builder.html
index d54de1e..c1f3844 100644
--- a/apidocs/stable/org/apache/tamaya/spi/ConversionContext.Builder.html
+++ b/apidocs/stable/org/apache/tamaya/spi/ConversionContext.Builder.html
@@ -1,51 +1,66 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConversionContext.Builder (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConversionContext.Builder (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.ConversionContext.Builder class">
 <meta name="keywords" content="setKey()">
+<meta name="keywords" content="setValues()">
 <meta name="keywords" content="setConfiguration()">
-<meta name="keywords" content="setConfigurationContext()">
 <meta name="keywords" content="setAnnotatedElement()">
+<meta name="keywords" content="setTargetType()">
 <meta name="keywords" content="addSupportedFormats()">
 <meta name="keywords" content="build()">
 <meta name="keywords" content="toString()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConversionContext.Builder (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConversionContext.Builder (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConversionContext.Builder.html">Use</a></li>
@@ -56,16 +71,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConversionContext.Builder.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.Builder.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -78,6 +91,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -94,18 +110,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Class ConversionContext.Builder" class="title">Class ConversionContext.Builder</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.spi.ConversionContext.Builder</li>
@@ -117,13 +142,12 @@
 <li class="blockList">
 <dl>
 <dt>Enclosing class:</dt>
-<dd><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dd>
+<dd><a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></dd>
 </dl>
 <hr>
-<br>
 <pre>public static final class <span class="typeNameLabel">ConversionContext.Builder</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Builder to create new instances of <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Builder to create new instances of <a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
 </li>
 </ul>
 </div>
@@ -131,101 +155,130 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.Configuration-org.apache.tamaya.spi.ConfigurationContext-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
-       <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.String,org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.TypeLiteral)">Builder</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
 <div class="block">Creates a new Builder instance.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</code>
-<div class="block">Add the formats provided by a <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>.</div>
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addSupportedFormats(java.lang.Class,java.lang.String...)">addSupportedFormats</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;converterType,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;formatDescriptors)</code></th>
+<td class="colLast">
+<div class="block">Add the formats provided by a <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#build--">build</a></span>()</code>
+<td class="colFirst"><code><a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Builds a new context instance.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setAnnotatedElement-java.lang.reflect.AnnotatedElement-">setAnnotatedElement</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect">AnnotatedElement</a>&nbsp;annotatedElement)</code>
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnnotatedElement(java.lang.reflect.AnnotatedElement)">setAnnotatedElement</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">AnnotatedElement</a>&nbsp;annotatedElement)</code></th>
+<td class="colLast">
 <div class="block">Sets the annotated element, when configuration is injected.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code>
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
 <div class="block">Sets the configuration.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code>
-<div class="block">Sets the configuration.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setKey-java.lang.String-">setKey</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKey(java.lang.String)">setKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
 <div class="block">Sets the key.</div>
 </td>
 </tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTargetType(org.apache.tamaya.TypeLiteral)">setTargetType</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Sets the target type explicitly.</div>
+</td>
+</tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#toString--">toString</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValues(java.util.List)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Sets the underlying values evaluated.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValues(org.apache.tamaya.spi.PropertyValue...)">setValues</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Sets the underlying values evaluated.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -233,18 +286,19 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="Builder-org.apache.tamaya.TypeLiteral-">
+<a id="&lt;init&gt;(org.apache.tamaya.TypeLiteral)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>Builder</h4>
-<pre>public&nbsp;Builder(<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
+<pre>public&nbsp;Builder&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
 <div class="block">Creates a new Builder instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -252,14 +306,14 @@
 </dl>
 </li>
 </ul>
-<a name="Builder-java.lang.String-org.apache.tamaya.TypeLiteral-">
+<a id="&lt;init&gt;(java.lang.String,org.apache.tamaya.TypeLiteral)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>Builder</h4>
-<pre>public&nbsp;Builder(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-               <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
+<pre>public&nbsp;Builder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+               <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
 <div class="block">Creates a new Builder instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -268,21 +322,19 @@
 </dl>
 </li>
 </ul>
-<a name="Builder-org.apache.tamaya.Configuration-org.apache.tamaya.spi.ConfigurationContext-java.lang.String-org.apache.tamaya.TypeLiteral-">
+<a id="&lt;init&gt;(org.apache.tamaya.Configuration,java.lang.String,org.apache.tamaya.TypeLiteral)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Builder</h4>
-<pre>public&nbsp;Builder(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
-               <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext,
-               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-               <a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
+<pre>public&nbsp;Builder&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+               <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
 <div class="block">Creates a new Builder instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>configuration</code> - the configuration, not <code>null</code>.</dd>
-<dd><code>configurationContext</code> - configuration context, not <code>null</code>.</dd>
 <dd><code>key</code> - the requested key, may be <code>null</code>.</dd>
 <dd><code>targetType</code> - the target type</dd>
 </dl>
@@ -290,19 +342,21 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="setKey-java.lang.String-">
+<a id="setKey(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setKey</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setKey(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
 <div class="block">Sets the key.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -312,13 +366,45 @@
 </dl>
 </li>
 </ul>
-<a name="setConfiguration-org.apache.tamaya.Configuration-">
+<a id="setValues(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</pre>
+<div class="block">Sets the underlying values evaluated.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the values, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder instance, for chaining</dd>
+</dl>
+</li>
+</ul>
+<a id="setValues(org.apache.tamaya.spi.PropertyValue...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setValues&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</pre>
+<div class="block">Sets the underlying values evaluated.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the values, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder instance, for chaining</dd>
+</dl>
+</li>
+</ul>
+<a id="setConfiguration(org.apache.tamaya.Configuration)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setConfiguration</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setConfiguration(<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</pre>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setConfiguration&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</pre>
 <div class="block">Sets the configuration.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -328,29 +414,13 @@
 </dl>
 </li>
 </ul>
-<a name="setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setConfigurationContext</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setConfigurationContext(<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</pre>
-<div class="block">Sets the configuration.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>configurationContext</code> - the configuration, not <code>null</code></dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the builder instance, for chaining</dd>
-</dl>
-</li>
-</ul>
-<a name="setAnnotatedElement-java.lang.reflect.AnnotatedElement-">
+<a id="setAnnotatedElement(java.lang.reflect.AnnotatedElement)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setAnnotatedElement</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setAnnotatedElement(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect">AnnotatedElement</a>&nbsp;annotatedElement)</pre>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setAnnotatedElement&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">AnnotatedElement</a>&nbsp;annotatedElement)</pre>
 <div class="block">Sets the annotated element, when configuration is injected.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -360,32 +430,49 @@
 </dl>
 </li>
 </ul>
-<a name="addSupportedFormats-java.lang.Class-java.lang.String...-">
+<a id="setTargetType(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTargetType</h4>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;setTargetType&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&nbsp;targetType)</pre>
+<div class="block">Sets the target type explicitly. This is required in some rare cases, e.g. injection of <code>Provider</code>
+ instances, where the provider's result type must be produced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>targetType</code> - the</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="addSupportedFormats(java.lang.Class,java.lang.String...)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>addSupportedFormats</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;addSupportedFormats(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                                                     <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</pre>
-<div class="block">Add the formats provided by a <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>. This method should be called by each converter
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;addSupportedFormats&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;converterType,
+                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;formatDescriptors)</pre>
+<div class="block">Add the formats provided by a <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>. This method should be called by each converters
  performing/trying conversion, so the user can be given feedback on the supported formats on failure.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>converterType</code> - the converter type, not <code>null</code>.</dd>
+<dd><code>converterType</code> - the converters type, not <code>null</code>.</dd>
 <dd><code>formatDescriptors</code> - the formats supported in a human readable form, e.g. as regular expressions.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the builder instance, for chaining</dd>
 </dl>
 </li>
 </ul>
-<a name="build--">
+<a id="build()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>build</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;build()</pre>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;build()</pre>
 <div class="block">Builds a new context instance.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -393,36 +480,40 @@
 </dl>
 </li>
 </ul>
-<a name="toString--">
+<a id="toString()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConversionContext.Builder.html">Use</a></li>
@@ -433,16 +524,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConversionContext.Builder.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.Builder.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -455,6 +538,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -471,10 +557,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ConversionContext.html b/apidocs/stable/org/apache/tamaya/spi/ConversionContext.html
index 475fd2c..72e2e66 100644
--- a/apidocs/stable/org/apache/tamaya/spi/ConversionContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/ConversionContext.html
@@ -1,52 +1,70 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ConversionContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConversionContext (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.ConversionContext class">
+<meta name="keywords" content="EMPTY">
 <meta name="keywords" content="getKey()">
+<meta name="keywords" content="getValues()">
 <meta name="keywords" content="getTargetType()">
 <meta name="keywords" content="getAnnotatedElement()">
 <meta name="keywords" content="getConfiguration()">
+<meta name="keywords" content="getMeta()">
 <meta name="keywords" content="addSupportedFormats()">
 <meta name="keywords" content="getSupportedFormats()">
+<meta name="keywords" content="toBuilder()">
 <meta name="keywords" content="toString()">
 <meta name="keywords" content="getConfigurationContext()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConversionContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ConversionContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var data = {"i0":10,"i1":10,"i2":10,"i3":42,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConversionContext.html">Use</a></li>
@@ -57,16 +75,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConversionContext.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -79,34 +95,46 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Class ConversionContext" class="title">Class ConversionContext</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.spi.ConversionContext</li>
@@ -117,14 +145,13 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">ConversionContext</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
 <div class="block">A conversion context containing all the required values for implementing conversion. Use the included #Builder
  for creating new instances of. This class is thread-safe to use. Adding supported formats is synchronized.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a></dd>
+<dd><a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -133,134 +160,222 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="nested.class.summary">
+<li class="blockList"><a id="nested.class.summary">
 <!--   -->
 </a>
 <h3>Nested Class Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<table class="memberSummary">
 <caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span></code>
-<div class="block">Builder to create new instances of <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">Builder to create new instances of <a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier</th>
-<th class="colLast" scope="col">Constructor and Description</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#ConversionContext-org.apache.tamaya.spi.ConversionContext.Builder-">ConversionContext</a></span>(<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;builder)</code>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ConversionContext.Builder)">ConversionContext</a></span>&#8203;(<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;builder)</code></th>
+<td class="colLast">
 <div class="block">Private constructor used from builder.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</code>
-<div class="block">Allows to add information on the supported/tried formats, which can be shown to the user, especially when
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addSupportedFormats(java.lang.Class,java.lang.String...)">addSupportedFormats</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;converterType,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;formatDescriptors)</code></th>
+<td class="colLast">
+<div class="block">Allows to addPropertyValue information on the supported/tried formats, which can be shown to the user, especially when
  conversion failed.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect">AnnotatedElement</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getAnnotatedElement--">getAnnotatedElement</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">AnnotatedElement</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotatedElement()">getAnnotatedElement</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Get the annotated element, if conversion is performed using injection mechanisms.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getConfiguration--">getConfiguration</a></span>()</code>
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Get the configuration, which is targeted.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurationContext()">getConfigurationContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#getConfiguration()"><code>getConfiguration()</code></a> and <a href="../Configuration.html#getContext()"><code>Configuration.getContext()</code></a>.</div>
+</div>
+</td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getKey--">getKey</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKey()">getKey</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Get the key accessed.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getSupportedFormats--">getSupportedFormats</a></span>()</code>
-<div class="block">Get the supported/tried formats in precedence order.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMeta()">getMeta</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Evaluate the metadata for the current target key from the given values.</div>
 </td>
 </tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#getTargetType--">getTargetType</a></span>()</code>
-<div class="block">Get the target type required.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSupportedFormats()">getSupportedFormats</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the supported/tried formats in precedence order.</div>
 </td>
 </tr>
 <tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#toString--">toString</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetType()">getTargetType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the target type required.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues()">getValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the correspnoding underlying property values matching the given key, in order of significance
+ (most significant last).</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBuilder()">toBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a builder based on this instance.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="EMPTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>public static final&nbsp;<a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a> EMPTY</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ConversionContext-org.apache.tamaya.spi.ConversionContext.Builder-">
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ConversionContext.Builder)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ConversionContext</h4>
-<pre>protected&nbsp;ConversionContext(<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;builder)</pre>
+<pre>protected&nbsp;ConversionContext&#8203;(<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;builder)</pre>
 <div class="block">Private constructor used from builder.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -270,19 +385,21 @@
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getKey--">
+<a id="getKey()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getKey</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getKey()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getKey()</pre>
 <div class="block">Get the key accessed. This information is very useful to evaluate additional metadata needed to determine/
  control further aspects of the conversion.</div>
 <dl>
@@ -292,13 +409,28 @@
 </dl>
 </li>
 </ul>
-<a name="getTargetType--">
+<a id="getValues()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getValues()</pre>
+<div class="block">Get the correspnoding underlying property values matching the given key, in order of significance
+ (most significant last).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the underlying values evaluated, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTargetType()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTargetType</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;getTargetType()</pre>
+<pre class="methodSignature">public&nbsp;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;getTargetType()</pre>
 <div class="block">Get the target type required.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -306,13 +438,13 @@
 </dl>
 </li>
 </ul>
-<a name="getAnnotatedElement--">
+<a id="getAnnotatedElement()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getAnnotatedElement</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect">AnnotatedElement</a>&nbsp;getAnnotatedElement()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">AnnotatedElement</a>&nbsp;getAnnotatedElement()</pre>
 <div class="block">Get the annotated element, if conversion is performed using injection mechanisms.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -320,13 +452,13 @@
 </dl>
 </li>
 </ul>
-<a name="getConfiguration--">
+<a id="getConfiguration()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration()</pre>
+<pre class="methodSignature">public&nbsp;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;getConfiguration()</pre>
 <div class="block">Get the configuration, which is targeted.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -334,78 +466,115 @@
 </dl>
 </li>
 </ul>
-<a name="addSupportedFormats-java.lang.Class-java.lang.String...-">
+<a id="getMeta()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMeta</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMeta()</pre>
+<div class="block">Evaluate the metadata for the current target key from the given values. Later values hereby are more significant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the evaluated meta data mapProperties.</dd>
+</dl>
+</li>
+</ul>
+<a id="addSupportedFormats(java.lang.Class,java.lang.String...)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>addSupportedFormats</h4>
-<pre>public&nbsp;void&nbsp;addSupportedFormats(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</pre>
-<div class="block">Allows to add information on the supported/tried formats, which can be shown to the user, especially when
- conversion failed. Adding of formats is synchronized, all formats are added in order to the overall list.
+<pre class="methodSignature">public&nbsp;void&nbsp;addSupportedFormats&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;converterType,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;formatDescriptors)</pre>
+<div class="block">Allows to addPropertyValue information on the supported/tried formats, which can be shown to the user, especially when
+ conversion failed. Adding of formats is synchronized, all formats are added in order to the overall createList.
  This means formats should be passed in order of precedence.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>converterType</code> - the converter, which implements the formats provided.</dd>
+<dd><code>converterType</code> - the converters, which implements the formats provided.</dd>
 <dd><code>formatDescriptors</code> - the format descriptions in a human readable form, e.g. as regular expressions.</dd>
 </dl>
 </li>
 </ul>
-<a name="getSupportedFormats--">
+<a id="getSupportedFormats()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getSupportedFormats</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSupportedFormats()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getSupportedFormats()</pre>
 <div class="block">Get the supported/tried formats in precedence order. The contents of this method depends on the
- <a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances involved in a conversion.</div>
+ <a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances involved in a conversion.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the supported/tried formats, never <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="toString--">
+<a id="toBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toBuilder</h4>
+<pre class="methodSignature">public&nbsp;<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;toBuilder()</pre>
+<div class="block">Creates a builder based on this instance.</div>
+</li>
+</ul>
+<a id="toString()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="getConfigurationContext--">
+<a id="getConfigurationContext()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getConfigurationContext</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getConfigurationContext()</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getConfigurationContext()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#getConfiguration()"><code>getConfiguration()</code></a> and <a href="../Configuration.html#getContext()"><code>Configuration.getContext()</code></a>.</div>
+</div>
+<div class="block">Get the current configuration context.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current configuration context.</dd>
+</dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ConversionContext.html">Use</a></li>
@@ -416,16 +585,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ConversionContext.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -438,26 +599,31 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/Experimental.html b/apidocs/stable/org/apache/tamaya/spi/Experimental.html
index 0a01006..a69fe61 100644
--- a/apidocs/stable/org/apache/tamaya/spi/Experimental.html
+++ b/apidocs/stable/org/apache/tamaya/spi/Experimental.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Experimental (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Experimental (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.Experimental class">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Experimental (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Experimental (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Experimental.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/Experimental.html" target="_top">Frames</a></li>
-<li><a href="Experimental.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,6 +77,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -79,13 +94,22 @@
 <li>Element</li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Annotation Type Experimental" class="title">Annotation Type Experimental</h2>
 </div>
 <div class="contentContainer">
@@ -93,10 +117,9 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation">@Inherited</a>
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation">ANNOTATION_TYPE</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#CONSTRUCTOR" title="class or interface in java.lang.annotation">CONSTRUCTOR</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>})
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Inherited</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation" class="externalLink">ANNOTATION_TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#CONSTRUCTOR" title="class or interface in java.lang.annotation" class="externalLink">CONSTRUCTOR</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>})
 public @interface <span class="memberNameLabel">Experimental</span></pre>
 <div class="block">This is a simple annotation for flaging out functionality or features the Tamaya team is not sure if it is already
  stabilized, so use it with some caution.</div>
@@ -104,17 +127,20 @@
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/Experimental.html">Use</a></li>
@@ -125,16 +151,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/Experimental.html" target="_top">Frames</a></li>
-<li><a href="Experimental.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -147,6 +165,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -161,10 +182,12 @@
 <li>Element</li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/FilterContext.html b/apidocs/stable/org/apache/tamaya/spi/FilterContext.html
index b7fdb82..1e0a1f8 100644
--- a/apidocs/stable/org/apache/tamaya/spi/FilterContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/FilterContext.html
@@ -1,49 +1,64 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>FilterContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FilterContext (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.FilterContext class">
-<meta name="keywords" content="getContext()">
+<meta name="keywords" content="getConfigurationContext()">
 <meta name="keywords" content="getProperty()">
+<meta name="keywords" content="getAllValues()">
 <meta name="keywords" content="isSinglePropertyScoped()">
 <meta name="keywords" content="getConfigEntries()">
 <meta name="keywords" content="toString()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FilterContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="FilterContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/FilterContext.html">Use</a></li>
@@ -54,16 +69,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/FilterContext.html" target="_top">Frames</a></li>
-<li><a href="FilterContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -76,6 +89,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -92,18 +108,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Class FilterContext" class="title">Class FilterContext</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.spi.FilterContext</li>
@@ -114,13 +139,12 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
 <pre>public class <span class="typeNameLabel">FilterContext</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">A filter context containing all the required values for implementing filtering.</div>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A filter configurationContext containing all the required values for implementing filtering.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a></dd>
+<dd><a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -129,87 +153,118 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
+<li class="blockList"><a id="constructor.summary">
 <!--   -->
 </a>
 <h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<table class="memberSummary">
 <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a single value access
- using <a href="../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+             <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
-             <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a multi value access
- using <a href="../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
+             <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a multi createValue access
+ using <a href="../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#getConfigEntries--">getConfigEntries</a></span>()</code>
-<div class="block">This map contains the following keys:
- 
- the original value <b>before</b> any filters were applied on it.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllValues()">getAllValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the property createValue under evaluation.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#getContext--">getContext</a></span>()</code>
-<div class="block">Get the current context.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigEntries()">getConfigEntries</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This mapProperties contains the following keys:
+ 
+ the original createValue <b>before</b> any filters were applied on it.
+ all values starting with an <code>_&lt;key&gt;.</code>, for example <code>a.createValue</code>
+ may have a mapProperties setCurrent with <code>a.createValue</code> (oringinal createValue), <code>_a.createValue.origin,
+ _a.createValue.type, etc</code>.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#getProperty--">getProperty</a></span>()</code>
-<div class="block">Get the property value under evaluation.</div>
+<td class="colFirst"><code><a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurationContext()">getConfigurationContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current configurationContext.</div>
 </td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty()">getProperty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the property createValue under evaluation.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#isSinglePropertyScoped--">isSinglePropertyScoped</a></span>()</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSinglePropertyScoped()">isSinglePropertyScoped</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Method that determines if filtering is done for a single property accessed, or as part of call to
  <code>getProperties()</code>.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/FilterContext.html#toString--">toString</a></span>()</code>&nbsp;</td>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -217,93 +272,129 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<li class="blockList"><a id="constructor.detail">
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="FilterContext-org.apache.tamaya.spi.PropertyValue-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">
+<a id="&lt;init&gt;(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>FilterContext</h4>
-<pre>public&nbsp;FilterContext(<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-                     <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
-                     <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
-<div class="block">Creates a new FilterContext, for filtering of a multi value access
- using <a href="../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<pre>public&nbsp;FilterContext&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
+                     <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</pre>
+<div class="block">Creates a new FilterContext, for filtering of a multi createValue access
+ using <a href="../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>value</code> - the value under evaluation, not <code>null</code>.</dd>
+<dd><code>value</code> - the createValue under evaluation, not <code>null</code>.</dd>
 <dd><code>configEntries</code> - the raw configuration data available in the
-                      current evaluation context, not <code>null</code>.</dd>
-<dd><code>context</code> - the current context, not <code>null</code>.</dd>
+                      current evaluation configurationContext, not <code>null</code>.</dd>
+<dd><code>configurationContext</code> - the current configurationContext, not <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="FilterContext-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">
+<a id="&lt;init&gt;(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FilterContext</h4>
+<pre>public&nbsp;FilterContext&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+                     <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</pre>
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the createValue under evaluation, not <code>null</code>.</dd>
+<dd><code>configurationContext</code> - the current configurationContext, not <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FilterContext</h4>
-<pre>public&nbsp;FilterContext(<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-                     <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
-<div class="block">Creates a new FilterContext, for filtering of a single value access
- using <a href="../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<pre>public&nbsp;FilterContext&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+                     <a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</pre>
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>value</code> - the value under evaluation, not <code>null</code>.</dd>
-<dd><code>context</code> - the current context, not <code>null</code>.</dd>
+<dd><code>values</code> - the createValue under evaluation, not <code>null</code>.</dd>
+<dd><code>configurationContext</code> - the current configurationContext, not <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getContext--">
+<a id="getConfigurationContext()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getContext</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getContext()</pre>
-<div class="block">Get the current context.</div>
+<h4>getConfigurationContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getConfigurationContext()</pre>
+<div class="block">Get the current configurationContext.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the current context, not <code>null</code>.</dd>
+<dd>the current configurationContext, not <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="getProperty--">
+<a id="getProperty()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getProperty</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;getProperty()</pre>
-<div class="block">Get the property value under evaluation. This information is very useful to evaluate additional metadata needed to determine/
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;getProperty()</pre>
+<div class="block">Get the property createValue under evaluation. This information is very useful to evaluate additional metadata needed to determine/
  control further aspects of the conversion.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the key. This may be null in case where a default value has to be converted and no unique underlying
- key/value configuration is present.</dd>
+<dd>the key. This may be null in case where a default createValue has to be converted and no unique underlying
+ key/createValue configuration is present.</dd>
 </dl>
 </li>
 </ul>
-<a name="isSinglePropertyScoped--">
+<a id="getAllValues()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getAllValues()</pre>
+<div class="block">Get the property createValue under evaluation. This information is very useful to evaluate additional metadata needed to determine/
+ control further aspects of the conversion.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the key. This may be null in case where a default createValue has to be converted and no unique underlying
+ key/createValue configuration is present.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSinglePropertyScoped()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>isSinglePropertyScoped</h4>
-<pre>public&nbsp;boolean&nbsp;isSinglePropertyScoped()</pre>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isSinglePropertyScoped()</pre>
 <div class="block">Method that determines if filtering is done for a single property accessed, or as part of call to
  <code>getProperties()</code>.</div>
 <dl>
@@ -312,65 +403,69 @@
 </dl>
 </li>
 </ul>
-<a name="getConfigEntries--">
+<a id="getConfigEntries()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfigEntries</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getConfigEntries()</pre>
-<div class="block">This map contains the following keys:
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getConfigEntries()</pre>
+<div class="block">This mapProperties contains the following keys:
  <ul>
- <li>the original value <b>before</b> any filters were applied on it.</li>
- <li>all values starting with an <code>_&lt;key&gt;.</code>, for example <code>a.value</code>
- may have a map set with <code>a.value</code> (oringinal value), <code>_a.value.origin,
- _a.value.type, etc</code>. The exact contents is determine by the <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s
+ <li>the original createValue <b>before</b> any filters were applied on it.</li>
+ <li>all values starting with an <code>_&lt;key&gt;.</code>, for example <code>a.createValue</code>
+ may have a mapProperties setCurrent with <code>a.createValue</code> (oringinal createValue), <code>_a.createValue.origin,
+ _a.createValue.type, etc</code>. The exact contents is determine by the <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s
  active.</li>
  </ul>
- Also important to know is that this map given contains all the evaluated raw entries, regardless
+ Also important to know is that this mapProperties given contains all the evaluated raw entries, regardless
  of the filters that are later applied. This ensures that met-information required by one filter is
  not hidden by another filter, because of an invalid filter ordering. In other words filters may remove
- key/value pairs, e.g. fir security reasons, by returning <code>null</code>, but the values in the raw map
+ key/createValue pairs, e.g. fir security reasons, by returning <code>null</code>, but the values in the raw mapProperties
  passed as input to the filter process will not be affected by any such removal (but the final properties
  returned are affected, of course).
  
- Finally, when a single property is accessed, e.g. by calling <code>Configuration.get(String)</code>.</div>
+ Finally, when a single property is accessed, e.g. by calling <code>Configuration.current(String)</code>.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the configuration instance, or null.</dd>
 </dl>
 </li>
 </ul>
-<a name="toString--">
+<a id="toString()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/FilterContext.html">Use</a></li>
@@ -381,16 +476,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/FilterContext.html" target="_top">Frames</a></li>
-<li><a href="FilterContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -403,6 +490,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -419,10 +509,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ListValue.html b/apidocs/stable/org/apache/tamaya/spi/ListValue.html
new file mode 100644
index 0000000..c1721bd
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/ListValue.html
@@ -0,0 +1,917 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ListValue (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spi.ListValue class">
+<meta name="keywords" content="getValueType()">
+<meta name="keywords" content="getIndex()">
+<meta name="keywords" content="getSize()">
+<meta name="keywords" content="iterator()">
+<meta name="keywords" content="addPropertyValue()">
+<meta name="keywords" content="addValue()">
+<meta name="keywords" content="addValues()">
+<meta name="keywords" content="addObject()">
+<meta name="keywords" content="addList()">
+<meta name="keywords" content="getValue()">
+<meta name="keywords" content="getPropertyValue()">
+<meta name="keywords" content="getObjects()">
+<meta name="keywords" content="getLists()">
+<meta name="keywords" content="getPropertyValues()">
+<meta name="keywords" content="toObjectValue()">
+<meta name="keywords" content="toListValue()">
+<meta name="keywords" content="setValue()">
+<meta name="keywords" content="mutable()">
+<meta name="keywords" content="deepClone()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="from()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ListValue (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ListValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
+<h2 title="Class ListValue" class="title">Class ListValue</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">org.apache.tamaya.spi.PropertyValue</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spi.ListValue</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">ListValue</span>
+extends <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></pre>
+<div class="block">Class modelling the result of a request for a property createValue. A property createValue is basically identified by its key.
+ There might be reasons, where one want to further analyze, which PropertySources provided a createValue and which not, so
+ it is possible to createObject a PropertyValue with a null createValue.
+
+  A PropertyValue represents an abstract data point in a configuration structure read. PropertyValues actually
+  represent a tree, with additional functionality for representing data lists/arrays using indexed children
+  names. This allows to support a full mapping of common document based configuration formats, such as JSON, YAML,
+  XML and more.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spi.ListValue">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.tamaya.spi.PropertyValue">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.tamaya.spi.<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></h3>
+<code><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addList()">addList</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds an anonymous array.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addObject()">addObject</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds an anonymous child createObject to the array.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyValue(org.apache.tamaya.spi.PropertyValue)">addPropertyValue</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a createValue to the array.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addValue(java.lang.String)">addValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds an anonymous text value to the array.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addValues(java.lang.String...)">addValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Adds text values to the array.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected <a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deepClone()">deepClone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a deep clone of this intance.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#from(java.util.Collection)">from</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Merges multiple values into one single node.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIndex(org.apache.tamaya.spi.PropertyValue)">getIndex</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;member)</code></th>
+<td class="colLast">
+<div class="block">Get the index of the given member value.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLists()">getLists</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get all array elements of type <a href="ListValue.html" title="class in org.apache.tamaya.spi"><code>ListValue</code></a>.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLists(java.lang.String)">getLists</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the array elements, filtered by the given name.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getObjects(java.lang.String)">getObjects</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the array elements, filtered by the given predicate.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyValue(int)">getPropertyValue</a></span>&#8203;(int&nbsp;n)</code></th>
+<td class="colLast">
+<div class="block">Get the n-th element of the children.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyValues(java.lang.String)">getPropertyValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the text elements, filtered by the given name.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize()">getSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the createValue's number of elements.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the node's createValue.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue(int)">getValue</a></span>&#8203;(int&nbsp;index)</code></th>
+<td class="colLast">
+<div class="block">Get a String value with the given key, if possible.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValueType()">getValueType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the item's current createValue type.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mutable()">mutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValue(java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Sets the createValue.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toListValue()">toListValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a List PropertyValue.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toObjectValue()">toObjectValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a String representation of the tree.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertyValue">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spi.<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></h3>
+<code><a href="PropertyValue.html#checkImmutable()">checkImmutable</a>, <a href="PropertyValue.html#createList()">createList</a>, <a href="PropertyValue.html#createList(java.lang.String)">createList</a>, <a href="PropertyValue.html#createObject()">createObject</a>, <a href="PropertyValue.html#createObject(java.lang.String)">createObject</a>, <a href="PropertyValue.html#createValue(java.lang.String,java.lang.String)">createValue</a>, <a href="PropertyValue.html#getKey()">getKey</a>, <a href="PropertyValue.html#getMeta()">getMeta</a>, <a href="PropertyValue.html#getMeta(java.lang.String)">getMeta</a>, <a href="PropertyValue.html#getMetaEntry(java.lang.String)">getMetaEntry</a>, <a href="PropertyValue.html#getParent()">getParent</a>, <a href="PropertyValue.html#getQualifiedKey()">getQualifiedKey</a>, <a href="PropertyValue.html#getSource()">getSource</a>, <a href="PropertyValue.html#getVersion()">getVersion</a>, <a href="PropertyValue.html#immutable()">immutable</a>, <a href="PropertyValue.html#incrementVersion()">incrementVersion</a>, <a href="PropertyValue.html#isImmutable()">isImmutable</a>, <a href="PropertyValue.html#isLeaf()">isLeaf</a>, <a href="PropertyValue.html#isRoot()">isRoot</a>, <a href="PropertyValue.html#mapProperties(java.util.Map,java.lang.String)">mapProperties</a>, <a href="PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map)">mapProperties</a>, <a href="PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)">mapProperties</a>, <a href="PropertyValue.html#removeMeta(java.lang.String)">removeMeta</a>, <a href="PropertyValue.html#setKey(java.lang.String)">setKey</a>, <a href="PropertyValue.html#setMeta(java.lang.String,java.lang.Object)">setMeta</a>, <a href="PropertyValue.html#setMeta(java.util.Map)">setMeta</a>, <a href="PropertyValue.html#setParent(org.apache.tamaya.spi.PropertyValue)">setParent</a>, <a href="PropertyValue.html#setVersion(int)">setVersion</a>, <a href="PropertyValue.html#toLocalMap()">toLocalMap</a>, <a href="PropertyValue.html#toMap()">toMap</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator()" title="class or interface in java.lang" class="externalLink">spliterator</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getValueType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValueType</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&nbsp;getValueType()</pre>
+<div class="block">Get the item's current createValue type.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#getValueType()">getValueType</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue type, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getIndex(org.apache.tamaya.spi.PropertyValue)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIndex</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getIndex&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;member)</pre>
+<div class="block">Get the index of the given member value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>member</code> - the member, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the index, or -1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getSize()</pre>
+<div class="block">Get the createValue's number of elements.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#getSize()">getSize</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the getNumChilds of this multi createValue.</dd>
+</dl>
+</li>
+</ul>
+<a id="iterator()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iterator</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;iterator()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#iterator()">iterator</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyValue(org.apache.tamaya.spi.PropertyValue)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;addPropertyValue&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</pre>
+<div class="block">Adds a createValue to the array.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the createValue, not null</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="addValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;addValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Adds an anonymous text value to the array.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the child's value, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the created value, not null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="addValues(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;addValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;values)</pre>
+<div class="block">Adds text values to the array.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the child's values, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the created values, not null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="addObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObject</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;addObject()</pre>
+<div class="block">Adds an anonymous child createObject to the array.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the created createObject, not null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="addList()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addList</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;addList()</pre>
+<div class="block">Adds an anonymous array.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue&#8203;(int&nbsp;index)</pre>
+<div class="block">Get a String value with the given key, if possible. If a node is present, but no value is setPropertyValue, then the
+ node's <code>toString()</code> method is used as a result.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - the target index.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value found, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;getPropertyValue&#8203;(int&nbsp;n)</pre>
+<div class="block">Get the n-th element of the children.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>n</code> - the index.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the element found</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/NoSuchElementException.html?is-external=true" title="class or interface in java.util" class="externalLink">NoSuchElementException</a></code> - if no such element exists.</dd>
+</dl>
+</li>
+</ul>
+<a id="getObjects(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&gt;&nbsp;getObjects&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the array elements, filtered by the given predicate.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the objects, null selects all.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this values matching, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLists(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLists</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&gt;&nbsp;getLists&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the array elements, filtered by the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the objects, null selects all.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this values matching, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLists()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLists</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&gt;&nbsp;getLists()</pre>
+<div class="block">Get all array elements of type <a href="ListValue.html" title="class in org.apache.tamaya.spi"><code>ListValue</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this values matching, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyValues(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getPropertyValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the text elements, filtered by the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the objects, null selects all.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this values matching, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toObjectValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toObjectValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;toObjectValue()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#toObjectValue()">PropertyValue</a></code></span></div>
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toObjectValue()">toObjectValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toListValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toListValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;toListValue()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#toListValue()">PropertyValue</a></code></span></div>
+<div class="block">Convert an instance to a List PropertyValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toListValue()">toListValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the node's createValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#getValue()">getValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#setValue(java.lang.String)">PropertyValue</a></code></span></div>
+<div class="block">Sets the createValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#setValue(java.lang.String)">setValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the createValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this value for chaining.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="mutable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mutable</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;mutable()</pre>
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#mutable()">mutable</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new value clone.</dd>
+</dl>
+</li>
+</ul>
+<a id="deepClone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deepClone</h4>
+<pre class="methodSignature">protected&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;deepClone()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#deepClone()">PropertyValue</a></code></span></div>
+<div class="block">Creates a deep clone of this intance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#deepClone()">deepClone</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a clone, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#toString()">PropertyValue</a></code></span></div>
+<div class="block">Create a String representation of the tree.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding String representation, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="from(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>from</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;from&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</pre>
+<div class="block">Merges multiple values into one single node.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the values to merge, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the merged instance, or null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ListValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ObjectValue.html b/apidocs/stable/org/apache/tamaya/spi/ObjectValue.html
new file mode 100644
index 0000000..ddc860f
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/ObjectValue.html
@@ -0,0 +1,1004 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ObjectValue (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spi.ObjectValue class">
+<meta name="keywords" content="getValueType()">
+<meta name="keywords" content="getValues()">
+<meta name="keywords" content="getKeys()">
+<meta name="keywords" content="getPropertyValue()">
+<meta name="keywords" content="getValue()">
+<meta name="keywords" content="setValue()">
+<meta name="keywords" content="getOrSetValue()">
+<meta name="keywords" content="getSize()">
+<meta name="keywords" content="setValues()">
+<meta name="keywords" content="toObjectValue()">
+<meta name="keywords" content="toListValue()">
+<meta name="keywords" content="iterator()">
+<meta name="keywords" content="setPropertyValue()">
+<meta name="keywords" content="addList()">
+<meta name="keywords" content="addObject()">
+<meta name="keywords" content="setValueWithCompositeKey()">
+<meta name="keywords" content="toMap()">
+<meta name="keywords" content="toLocalMap()">
+<meta name="keywords" content="mutable()">
+<meta name="keywords" content="deepClone()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="from()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectValue (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
+<h2 title="Class ObjectValue" class="title">Class ObjectValue</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">org.apache.tamaya.spi.PropertyValue</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spi.ObjectValue</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">ObjectValue</span>
+extends <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></pre>
+<div class="block">Class modelling the result of a request for a property value. A property value is basically identified by its key.
+ There might be reasons, where one want to further analyze, which PropertySources provided a value and which not, so
+ it is possible to createObject a PropertyValue with a null value.
+
+  A PropertyValue represents an abstract data point in a configuration structure read. PropertyValues actually
+  represent a tree, with additional functionality for representing data lists/arrays using indexed children
+  names. This allows to support a full mapping of common document based configuration formats, such as JSON, YAML,
+  XML and more.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spi.ObjectValue">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.tamaya.spi.PropertyValue">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.tamaya.spi.<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></h3>
+<code><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addList(java.lang.String)">addList</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Sets the given list value.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addObject(java.lang.String)">addObject</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Sets the given object vaöue.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected <a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deepClone()">deepClone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a deep clone of this intance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#from(java.util.Collection)">from</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Merges multiple values into one single node.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeys()">getKeys</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current present field names/keys.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;<br>T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrSetValue(java.lang.String,java.util.function.Supplier)">getOrSetValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;valueSupplier)</code></th>
+<td class="colLast">
+<div class="block">Get a single child getValue with the given name, creates it if not existing.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyValue(java.lang.String)">getPropertyValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a single child getValue by name.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize()">getSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value's number of elements.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the node's createValue.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue(java.lang.String)">getValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Get a String value with the given key, if possible.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues()">getValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the fields of this instance.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValueType()">getValueType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the item's current value type.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mutable()">mutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>protected <a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPropertyValue(org.apache.tamaya.spi.PropertyValue)">setPropertyValue</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds another existing node, hereby setting the corresponding parent node.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValue(java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Sets the createValue.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValue(java.lang.String,java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;k,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Sets the given key, value pair.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValues(java.util.Map)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValues(java.util.Map,java.lang.String,boolean)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+         boolean&nbsp;overwriteExisting)</code></th>
+<td class="colLast">
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValueWithCompositeKey(java.lang.String,java.lang.String)">setValueWithCompositeKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a new child getValue, where the getValue is given in '.'</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValueWithCompositeKey(java.util.Map)">setValueWithCompositeKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Adds multiple values, where the keys are given in '.'</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toListValue()">toListValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a List PropertyValue.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toLocalMap()">toLocalMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the value tree to a local property map.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toMap()">toMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the value tree to a property map.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toObjectValue()">toObjectValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a String representation of the tree.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertyValue">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spi.<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></h3>
+<code><a href="PropertyValue.html#checkImmutable()">checkImmutable</a>, <a href="PropertyValue.html#createList()">createList</a>, <a href="PropertyValue.html#createList(java.lang.String)">createList</a>, <a href="PropertyValue.html#createObject()">createObject</a>, <a href="PropertyValue.html#createObject(java.lang.String)">createObject</a>, <a href="PropertyValue.html#createValue(java.lang.String,java.lang.String)">createValue</a>, <a href="PropertyValue.html#getKey()">getKey</a>, <a href="PropertyValue.html#getMeta()">getMeta</a>, <a href="PropertyValue.html#getMeta(java.lang.String)">getMeta</a>, <a href="PropertyValue.html#getMetaEntry(java.lang.String)">getMetaEntry</a>, <a href="PropertyValue.html#getParent()">getParent</a>, <a href="PropertyValue.html#getQualifiedKey()">getQualifiedKey</a>, <a href="PropertyValue.html#getSource()">getSource</a>, <a href="PropertyValue.html#getVersion()">getVersion</a>, <a href="PropertyValue.html#immutable()">immutable</a>, <a href="PropertyValue.html#incrementVersion()">incrementVersion</a>, <a href="PropertyValue.html#isImmutable()">isImmutable</a>, <a href="PropertyValue.html#isLeaf()">isLeaf</a>, <a href="PropertyValue.html#isRoot()">isRoot</a>, <a href="PropertyValue.html#mapProperties(java.util.Map,java.lang.String)">mapProperties</a>, <a href="PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map)">mapProperties</a>, <a href="PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)">mapProperties</a>, <a href="PropertyValue.html#removeMeta(java.lang.String)">removeMeta</a>, <a href="PropertyValue.html#setKey(java.lang.String)">setKey</a>, <a href="PropertyValue.html#setMeta(java.lang.String,java.lang.Object)">setMeta</a>, <a href="PropertyValue.html#setMeta(java.util.Map)">setMeta</a>, <a href="PropertyValue.html#setParent(org.apache.tamaya.spi.PropertyValue)">setParent</a>, <a href="PropertyValue.html#setVersion(int)">setVersion</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator()" title="class or interface in java.lang" class="externalLink">spliterator</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getValueType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValueType</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&nbsp;getValueType()</pre>
+<div class="block">Get the item's current value type.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#getValueType()">getValueType</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value type, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValues()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getValues()</pre>
+<div class="block">Get the fields of this instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current fields, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getKeys()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeys</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getKeys()</pre>
+<div class="block">Access the current present field names/keys.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the keys present, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;getPropertyValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a single child getValue by name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the child's name, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the child found, or null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if multiple getPropertyValues with the given name are existing (ambigous).</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the node's createValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#getValue()">getValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#setValue(java.lang.String)">PropertyValue</a></code></span></div>
+<div class="block">Sets the createValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#setValue(java.lang.String)">setValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the createValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this value for chaining.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Get a String value with the given key, if possible. If a node is present, but no value is setPropertyValue, then the
+ node's <code>toString()</code> method is used as a result.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value found, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrSetValue(java.lang.String,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrSetValue</h4>
+<pre class="methodSignature">public&nbsp;&lt;T extends <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;T&nbsp;getOrSetValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;valueSupplier)</pre>
+<div class="block">Get a single child getValue with the given name, creates it if not existing.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the child's name, not null.</dd>
+<dd><code>valueSupplier</code> - the supplier to create a new instance, if no value is present, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the child found or created, never null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getSize()</pre>
+<div class="block">Get the value's number of elements.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#getSize()">getSize</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the getNumChilds of this multi value.</dd>
+</dl>
+</li>
+</ul>
+<a id="setValues(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;setValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config)</pre>
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the String based mapProperties, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding createValue based mapProperties.</dd>
+</dl>
+</li>
+</ul>
+<a id="setValues(java.util.Map,java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;setValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+                             boolean&nbsp;overwriteExisting)</pre>
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the String based mapProperties, not <code>null</code>.</dd>
+<dd><code>source</code> - the source name, optional.</dd>
+<dd><code>overwriteExisting</code> - if true, existing values will be overridden.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding createValue based mapProperties.</dd>
+</dl>
+</li>
+</ul>
+<a id="toObjectValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toObjectValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;toObjectValue()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#toObjectValue()">PropertyValue</a></code></span></div>
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toObjectValue()">toObjectValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toListValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toListValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;toListValue()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#toListValue()">PropertyValue</a></code></span></div>
+<div class="block">Convert an instance to a List PropertyValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toListValue()">toListValue</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="iterator()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iterator</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;iterator()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#iterator()">iterator</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="setPropertyValue(org.apache.tamaya.spi.PropertyValue)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPropertyValue</h4>
+<pre class="methodSignature">protected&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;setPropertyValue&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</pre>
+<div class="block">Adds another existing node, hereby setting the corresponding parent node.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value, not null</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value added, not null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setValue(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;setValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;k,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;v)</pre>
+<div class="block">Sets the given key, value pair.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>k</code> - the key, not null.</dd>
+<dd><code>v</code> - the value, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value added, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addList(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addList</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;addList&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Sets the given list value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value added, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addObject(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObject</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;addObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Sets the given object vaöue.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value added, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setValueWithCompositeKey(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValueWithCompositeKey</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setValueWithCompositeKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Adds a new child getValue, where the getValue is given in '.'-separated property notation,
+ e.g. <code>a.b.c</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property key, e.g. <code>a.b.c</code></dd>
+<dd><code>value</code> - the property value</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new leaf-getValue created.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setValueWithCompositeKey(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValueWithCompositeKey</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;setValueWithCompositeKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Adds multiple values, where the keys are given in '.'-separated property notation,
+ e.g. <code>a.b.c</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the values, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value instances created.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PropertyValue.html#isImmutable()"><code>PropertyValue.isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;toMap()</pre>
+<div class="block">Convert the value tree to a property map.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toMap()">toMap</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding property map, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toLocalMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLocalMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;toLocalMap()</pre>
+<div class="block">Convert the value tree to a local property map.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toLocalMap()">toLocalMap</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding local map, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="mutable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mutable</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;mutable()</pre>
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#mutable()">mutable</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new value clone.</dd>
+</dl>
+</li>
+</ul>
+<a id="deepClone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deepClone</h4>
+<pre class="methodSignature">protected&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;deepClone()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#deepClone()">PropertyValue</a></code></span></div>
+<div class="block">Creates a deep clone of this intance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#deepClone()">deepClone</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a clone, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="PropertyValue.html#toString()">PropertyValue</a></code></span></div>
+<div class="block">Create a String representation of the tree.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="PropertyValue.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding String representation, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="from(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>from</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;from&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</pre>
+<div class="block">Merges multiple values into one single node.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the values to merge, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the merged instance, or null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/PropertyConverter.html b/apidocs/stable/org/apache/tamaya/spi/PropertyConverter.html
index 47a69ce..2f7c87f 100644
--- a/apidocs/stable/org/apache/tamaya/spi/PropertyConverter.html
+++ b/apidocs/stable/org/apache/tamaya/spi/PropertyConverter.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>PropertyConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>PropertyConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.PropertyConverter interface">
 <meta name="keywords" content="convert()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PropertyConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="PropertyConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6};
+var data = {"i0":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertyConverter.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertyConverter.html" target="_top">Frames</a></li>
-<li><a href="PropertyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,6 +84,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -88,13 +103,22 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface PropertyConverter" class="title">Interface PropertyConverter&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
@@ -107,14 +131,18 @@
 </dl>
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a>, <a href="../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></dd>
+<dd><code><a href="../core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></code>, <code><a href="../core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></code>, <code><a href="../core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></code>, <code><a href="../core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></code>, <code><a href="../core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></code>, <code><a href="../core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></code>, <code><a href="../core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></code>, <code><a href="../core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></code>, <code><a href="../core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></code>, <code><a href="../spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a></code>, <code><a href="../core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></code>, <code><a href="../core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></code>, <code><a href="../core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></code>, <code><a href="../core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></code>, <code><a href="../core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></code>, <code><a href="../core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></code>, <code><a href="../core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></code>, <code><a href="../core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></code>, <code><a href="../core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></code>, <code><a href="../core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></code>, <code><a href="../core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></code>, <code><a href="../core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></code>, <code><a href="../core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></code>, <code><a href="../core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></code>, <code><a href="../core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></code>, <code><a href="../core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></code>, <code><a href="../core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></code>, <code><a href="../core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></code>, <code><a href="../core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></code>, <code><a href="../core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></code></dd>
+</dl>
+<dl>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
 </dl>
 <hr>
-<br>
-<pre>public interface <span class="typeNameLabel">PropertyConverter&lt;T&gt;</span></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang" class="externalLink">@FunctionalInterface</a>
+public interface <span class="typeNameLabel">PropertyConverter&lt;T&gt;</span></pre>
 <div class="block">Interface for an property that converts a configured String into something else.
  This is used for implementing type conversion from a property (String) to a certain target
- type. Hereby the target type can be multivalued (e.g. collections) or complex if needed.</div>
+ type. Hereby the target type can be multi-value (e.g. collections) or complex if needed.</div>
 </li>
 </ul>
 </div>
@@ -122,27 +150,31 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="type parameter in PropertyConverter">T</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="PropertyConverter.html" title="type parameter in PropertyConverter">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -150,51 +182,57 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>convert</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="type parameter in PropertyConverter">T</a>&nbsp;convert(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-          <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
+<pre class="methodSignature"><a href="PropertyConverter.html" title="type parameter in PropertyConverter">T</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+          <a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</pre>
 <div class="block">Convert the given configuration keys from its String representation into the required target type.
- The context instance passed also allows to add a list of supported formats, which is very handy in case a
+ Additional data can be obtained from <a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
  value could not be converted. This list of supported formats can then shown to the user to give some hints
  how a value could be configured.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - configuration key that needs to be converted</dd>
-<dd><code>context</code> - the <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, containing the String value and the requested configuration key.</dd>
+<dd><code>context</code> - the converter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>converted keys</dd>
+<dd>the converted value</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-"><code>ConversionContext.addSupportedFormats(Class, String...)</code></a></dd>
+<dd><a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertyConverter.html">Use</a></li>
@@ -205,16 +243,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertyConverter.html" target="_top">Frames</a></li>
-<li><a href="PropertyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -227,6 +257,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -243,10 +276,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/PropertyFilter.html b/apidocs/stable/org/apache/tamaya/spi/PropertyFilter.html
index 5fb1286..d96d253 100644
--- a/apidocs/stable/org/apache/tamaya/spi/PropertyFilter.html
+++ b/apidocs/stable/org/apache/tamaya/spi/PropertyFilter.html
@@ -1,45 +1,59 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>PropertyFilter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>PropertyFilter (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.PropertyFilter interface">
 <meta name="keywords" content="filterProperty()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PropertyFilter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="PropertyFilter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6};
+var data = {"i0":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertyFilter.html">Use</a></li>
@@ -50,16 +64,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertyFilter.html" target="_top">Frames</a></li>
-<li><a href="PropertyFilter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -72,6 +84,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -88,24 +103,41 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface PropertyFilter" class="title">Interface PropertyFilter</h2>
 </div>
 <div class="contentContainer">
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></code></dd>
+</dl>
+<dl>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
+</dl>
 <hr>
-<br>
-<pre>public interface <span class="typeNameLabel">PropertyFilter</span></pre>
-<div class="block"><p>Interface for filtering the current map of properties during the evaluation of the chain of PropertySources.
- Filters can be registered using the <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. The ordinal
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang" class="externalLink">@FunctionalInterface</a>
+public interface <span class="typeNameLabel">PropertyFilter</span></pre>
+<div class="block"><p>Interface for filtering the current mapProperties of properties during the evaluation of the chain of PropertySources.
+ Filters can be registered using the <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. The ordinal
  hereby is defined by the corresponding <code>@Priority</code> annotation.</p>
  <p>Filters </p></div>
 </li>
@@ -115,27 +147,31 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html#filterProperty-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.FilterContext-">filterProperty</a></span>(<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-              <a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code>
-<div class="block">Maps the current <code>valueToBeFiltered</code> value to a new value.</div>
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+              <a href="FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Maps the current <code>value</code> to a new value.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -143,22 +179,23 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="filterProperty-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.FilterContext-">
+<a id="filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>filterProperty</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;filterProperty(<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-                             <a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</pre>
-<div class="block"><p>Maps the current <code>valueToBeFiltered</code> value to a new value. The resulting value will be used as the result
+<pre class="methodSignature"><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;filterProperty&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+                             <a href="FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</pre>
+<div class="block"><p>Maps the current <code>value</code> to a new value. The resulting value will be used as the result
  passed to the user.</p>
- <p>If a filter is currently not available, it should just pass the input map to the method's
+ <p>If a filter is currently not available, it should just pass the input mapProperties to the method's
  output.</p>
  <p>Returning <code>null</code> will remove the entry.</p>
  <h3>Implementation specification</h3>
@@ -170,32 +207,36 @@
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>value</code> - the value to be filtered, which also can be <code>null</code> if removed by another filter.</dd>
-<dd><code>context</code> - the filter context, not <code>null</code>.</dd>
+<dd><code>context</code> - the filter context, not null.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the filtered value, or <code>null</code> if the value should be removed alltogether.</dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a>, 
-<a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi"><code>PropertyValueBuilder</code></a></dd>
+<dd><a href="PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a>, 
+<a href="FilterContext.html" title="class in org.apache.tamaya.spi"><code>FilterContext</code></a></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertyFilter.html">Use</a></li>
@@ -206,16 +247,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertyFilter.html" target="_top">Frames</a></li>
-<li><a href="PropertyFilter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -228,6 +261,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -244,10 +280,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/PropertySource.html b/apidocs/stable/org/apache/tamaya/spi/PropertySource.html
index b487179..d3d6bbd 100644
--- a/apidocs/stable/org/apache/tamaya/spi/PropertySource.html
+++ b/apidocs/stable/org/apache/tamaya/spi/PropertySource.html
@@ -1,10 +1,10 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>PropertySource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>PropertySource (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.PropertySource interface">
 <meta name="keywords" content="TAMAYA_ORDINAL">
 <meta name="keywords" content="EMPTY">
@@ -13,39 +13,58 @@
 <meta name="keywords" content="get()">
 <meta name="keywords" content="getProperties()">
 <meta name="keywords" content="isScannable()">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="getVersion()">
+<meta name="keywords" content="addChangeListener()">
+<meta name="keywords" content="removeChangeListener()">
+<meta name="keywords" content="removeAllChangeListeners()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PropertySource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="PropertySource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var data = {"i0":18,"i1":6,"i2":18,"i3":6,"i4":18,"i5":6,"i6":18,"i7":50,"i8":18,"i9":18};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertySource.html">Use</a></li>
@@ -56,16 +75,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertySource.html" target="_top">Frames</a></li>
-<li><a href="PropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -78,6 +95,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -94,13 +114,22 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface PropertySource" class="title">Interface PropertySource</h2>
 </div>
 <div class="contentContainer">
@@ -109,10 +138,9 @@
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a>, <a href="../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a>, <a href="../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a>, <a href="../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a>, <a href="../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a>, <a href="../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a>, <a href="../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></dd>
+<dd><code><a href="../core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></code>, <code><a href="../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code>, <code><a href="../spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></code>, <code><a href="../spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></code>, <code><a href="../spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code>, <code><a href="../spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></code>, <code><a href="../spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></code>, <code><a href="../spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></code>, <code><a href="../spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></code>, <code><a href="../examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></code>, <code><a href="../spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></code>, <code><a href="../spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></code></dd>
 </dl>
 <hr>
-<br>
 <pre>public interface <span class="typeNameLabel">PropertySource</span></pre>
 <div class="block"><p>This interface models a provider that serves configuration properties. The contained
  properties may be read from a Map of single or several sources (composite).
@@ -123,13 +151,13 @@
  <li>Thread safe.</li>
  </ul>
 
- <p>A PropertySourceProvider will get picked up via the
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util"><code>ServiceLoader</code></a> mechanism and can be registered via
+ <p>A PropertySourceProvider will current picked up via the
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> mechanism and can be registered via
  <code>META-INF/services/org.apache.tamaya.spi.PropertySource</code>
  </p>
  <p>
  If you like to register multiple PropertySources at the same time
- you can use the <a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>
+ you can use the <a href="PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><code>PropertySourceProvider</code></a>
  interface.
  </p></div>
 </li>
@@ -139,78 +167,128 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
 <h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<table class="memberSummary">
 <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#EMPTY">EMPTY</a></span></code>
+<td class="colFirst"><code>static <a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></span></code>
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></span></code></th>
+<td class="colLast">
 <div class="block">property name to override default tamaya ordinals</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
-<div class="block">Access a property.</div>
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Add a change listener for this properrty source.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#getName--">getName</a></span>()</code>
-<div class="block">Get the name of the property source.</div>
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#getOrdinal--">getOrdinal</a></span>()</code>
+<td class="colFirst"><code>default <a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the property source.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>default int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal()">getOrdinal</a></span>()</code></th>
+<td class="colLast">
 <div class="block">The ordinal value is the default ordering parameter which definines the default order of
  auto-discovered property sources.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#getProperties--">getProperties</a></span>()</code>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current properties as Set.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySource.html#isScannable--">isScannable</a></span>()</code>
-<div class="block">Determines if this config source can be scanned for its list of properties.</div>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current version.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>default boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isScannable()">isScannable</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">will be removed.</div>
+</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAllChangeListeners()">removeAllChangeListeners</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Removes all registered change listeners, if any.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Removes a change listener for this properrty source.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -218,18 +296,19 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.detail">
+<li class="blockList"><a id="field.detail">
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="TAMAYA_ORDINAL">
+<a id="TAMAYA_ORDINAL">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>TAMAYA_ORDINAL</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TAMAYA_ORDINAL</pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TAMAYA_ORDINAL</pre>
 <div class="block">property name to override default tamaya ordinals</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -237,31 +316,33 @@
 </dl>
 </li>
 </ul>
-<a name="EMPTY">
+<a id="EMPTY">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EMPTY</h4>
-<pre>static final&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> EMPTY</pre>
+<pre>static final&nbsp;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> EMPTY</pre>
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getOrdinal--">
+<a id="getOrdinal()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrdinal</h4>
-<pre>int&nbsp;getOrdinal()</pre>
+<pre class="methodSignature">default&nbsp;int&nbsp;getOrdinal()</pre>
 <div class="block">The ordinal value is the default ordering parameter which definines the default order of
  auto-discovered property sources. Ordering of property sources is important since values
  from property sources with higher ordinal values override values from less significant
@@ -285,17 +366,16 @@
 
  <p>Reordering of the default order of the config-sources:</p>
  <p>Example: If the properties file/s should be used <b>before</b> the other implementations,
- you have to configure an ordinal &gt; 1000. That means, you have to add e.g. tamaya.ordinal=401 to
+ you have to configure an ordinal &gt; 1000. That means, you have to addPropertyValue e.g. tamaya.ordinal=401 to
  /META-INF/javaconfiguration.properties . Hint: In case of property files every file is handled as independent
  config-source, but all of them have ordinal 400 by default (and can be reordered in a fine-grained manner.</p>
 
  In cases where it is not possible to change a config sources ordinal value, you may have several options:
  <ul>
-     <li>you can register an alternate implementation of <a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><code>PropertyValueCombinationPolicy</code></a>.</li>
-     <li>you can use a <a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to redefine the source order and finally use
-     <a href="../../../../org/apache/tamaya/ConfigurationProvider.html#setConfiguration-org.apache.tamaya.Configuration-"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
-     change the current default <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
-     <li>finally, the imeplementor of this API may define alternate mechanism to reconfigure an ordinal
+     <li>you can use a <a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> to redefine the source order and finally use
+     <a href="../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
+     change the current default <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
+     <li>finally, the implementor of this API may define alternate mechanism to reconfigure an ordinal
      in a vendor specific way.</li>
  </ul></div>
 <dl>
@@ -304,13 +384,13 @@
 </dl>
 </li>
 </ul>
-<a name="getName--">
+<a id="getName()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
 <div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
  to ensure unique identity, either locally or remotely.</div>
 <dl>
@@ -319,77 +399,156 @@
 </dl>
 </li>
 </ul>
-<a name="get-java.lang.String-">
+<a id="get(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<pre class="methodSignature"><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
 <div class="block">Access a property.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>key</code> - the property's key, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the property value map, where <code>map.get(key) == value</code>, including also any metadata. In case a
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
  value is null, simply return <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="getProperties--">
+<a id="getProperties()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getProperties</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
 <div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
  when the underlying storage does not support iteration of its entries.
      <code>null</code></div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the corresponding map, never null.</dd>
+<dd>the corresponding mapProperties, never null.</dd>
 </dl>
 </li>
 </ul>
-<a name="isScannable--">
+<a id="isScannable()">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>isScannable</h4>
-<pre>boolean&nbsp;isScannable()</pre>
-<div class="block">Determines if this config source can be scanned for its list of properties.
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+default&nbsp;boolean&nbsp;isScannable()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">will be removed.</div>
+</div>
+<div class="block">Determines if this config source can be scanned for its createList of properties.
 
  <p>
  PropertySources which are not scannable might not be able to find all the
- configured values to provide via <a href="../../../../org/apache/tamaya/spi/PropertySource.html#getProperties--"><code>getProperties()</code></a>. This might happen
+ configured values to provide via <a href="#getProperties()"><code>getProperties()</code></a>. This might happen
  if the underlying storage doesn't support listing.
  </p></div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd><code>true</code> if this PropertySource can be scanned for its list of properties,
+<dd><code>true</code> if this PropertySource can be scanned for its createList of properties,
          <code>false</code> if it cannot/should not be scanned.</dd>
 </dl>
 </li>
 </ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">default&nbsp;<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getVersion()</pre>
+<div class="block">Get the current version. A new version signals that it is known that properties have changed for this property
+ source. This is especially useful, when <a href="#getChangeSupport()"><code>getChangeSupport()</code></a> is <a href="ChangeSupport.html#SUPPORTED"><code>ChangeSupport.SUPPORTED</code></a>.
+ The content and format of the version String is imeplemtation specific. We recommend to addPropertyValue information
+ such as the loading timestamp, the source systems read or whatever is appropriate. By default this
+ method returns <code>"N/A"</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the version this property source, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addChangeListener(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addChangeListener</h4>
+<pre class="methodSignature">default&nbsp;void&nbsp;addChangeListener&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</pre>
+<div class="block">Add a change listener for this properrty source.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>l</code> - the listner, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeChangeListener(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeChangeListener</h4>
+<pre class="methodSignature">default&nbsp;void&nbsp;removeChangeListener&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</pre>
+<div class="block">Removes a change listener for this properrty source.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>l</code> - the listner, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeAllChangeListeners()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeAllChangeListeners</h4>
+<pre class="methodSignature">default&nbsp;void&nbsp;removeAllChangeListeners()</pre>
+<div class="block">Removes all registered change listeners, if any.</div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
+</li>
+</ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertySource.html">Use</a></li>
@@ -400,16 +559,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertySource.html" target="_top">Frames</a></li>
-<li><a href="PropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -422,6 +573,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -438,10 +592,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/PropertySourceProvider.html b/apidocs/stable/org/apache/tamaya/spi/PropertySourceProvider.html
index 888ba51..2fbf4ab 100644
--- a/apidocs/stable/org/apache/tamaya/spi/PropertySourceProvider.html
+++ b/apidocs/stable/org/apache/tamaya/spi/PropertySourceProvider.html
@@ -1,46 +1,60 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>PropertySourceProvider (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>PropertySourceProvider (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.PropertySourceProvider interface">
 <meta name="keywords" content="EMPTY">
 <meta name="keywords" content="getPropertySources()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PropertySourceProvider (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="PropertySourceProvider (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6};
+var data = {"i0":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertySourceProvider.html">Use</a></li>
@@ -51,16 +65,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="PropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -73,6 +85,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -89,13 +104,22 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface PropertySourceProvider" class="title">Interface PropertySourceProvider</h2>
 </div>
 <div class="contentContainer">
@@ -104,21 +128,25 @@
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></dd>
+<dd><code><a href="../spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></code>, <code><a href="../examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></code></dd>
+</dl>
+<dl>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
 </dl>
 <hr>
-<br>
-<pre>public interface <span class="typeNameLabel">PropertySourceProvider</span></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang" class="externalLink">@FunctionalInterface</a>
+public interface <span class="typeNameLabel">PropertySourceProvider</span></pre>
 <div class="block"><p>Implement this interfaces to provide a PropertySource provider which
  is able to register multiple PropertySources. This is e.g. needed if
  there are multiple property files of a given config file name.</p>
  
  <p>If a PropertySource like JNDI only exists once, then there is no need
  to implement it via the PropertySourceProvider but should directly
- expose a <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</p>
+ expose a <a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>.</p>
 
- <p>A PropertySourceProvider will get picked up via the
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util"><code>ServiceLoader</code></a> mechanism and must get registered via
+ <p>A PropertySourceProvider will current picked up via the
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> mechanism and must current registered via
  META-INF/services/org.apache.tamaya.spi.PropertySourceProvider</p></div>
 </li>
 </ul>
@@ -127,45 +155,53 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
 <h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<table class="memberSummary">
 <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html#EMPTY">EMPTY</a></span></code>
+<td class="colFirst"><code>static <a href="PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html#getPropertySources--">getPropertySources</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </table>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -173,60 +209,67 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="field.detail">
+<li class="blockList"><a id="field.detail">
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="EMPTY">
+<a id="EMPTY">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EMPTY</h4>
-<pre>static final&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> EMPTY</pre>
+<pre>static final&nbsp;<a href="PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> EMPTY</pre>
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getPropertySources--">
+<a id="getPropertySources()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getPropertySources</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>For each e.g. property file, we return a single PropertySource
-         or an empty list if no PropertySource exists.</dd>
+         or an empty createList if no PropertySource exists.</dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertySourceProvider.html">Use</a></li>
@@ -237,16 +280,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="PropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -259,6 +294,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -275,10 +313,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/PropertyValue.ValueType.html b/apidocs/stable/org/apache/tamaya/spi/PropertyValue.ValueType.html
new file mode 100644
index 0000000..c910f04
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/PropertyValue.ValueType.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertyValue.ValueType (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spi.PropertyValue.ValueType class">
+<meta name="keywords" content="values()">
+<meta name="keywords" content="valueOf()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertyValue.ValueType (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyValue.ValueType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
+<h2 title="Enum PropertyValue.ValueType" class="title">Enum PropertyValue.ValueType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spi.PropertyValue.ValueType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">PropertyValue.ValueType</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&gt;</pre>
+<div class="block">Enum of the different supported value types.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ARRAY">ARRAY</a></span></code></th>
+<td class="colLast">
+<div class="block">A multi valued property value, which contains unnamed child properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MAP">MAP</a></span></code></th>
+<td class="colLast">
+<div class="block">A multi valued property value, which contains named child properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#VALUE">VALUE</a></span></code></th>
+<td class="colLast">
+<div class="block">A simple value property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="MAP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAP</h4>
+<pre>public static final&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a> MAP</pre>
+<div class="block">A multi valued property value, which contains named child properties.</div>
+</li>
+</ul>
+<a id="ARRAY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAY</h4>
+<pre>public static final&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a> ARRAY</pre>
+<div class="block">A multi valued property value, which contains unnamed child properties.</div>
+</li>
+</ul>
+<a id="VALUE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>VALUE</h4>
+<pre>public static final&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a> VALUE</pre>
+<div class="block">A simple value property.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (PropertyValue.ValueType c : PropertyValue.ValueType.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyValue.ValueType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/PropertyValue.html b/apidocs/stable/org/apache/tamaya/spi/PropertyValue.html
index fec24c7..777229e 100644
--- a/apidocs/stable/org/apache/tamaya/spi/PropertyValue.html
+++ b/apidocs/stable/org/apache/tamaya/spi/PropertyValue.html
@@ -1,56 +1,94 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>PropertyValue (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>PropertyValue (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.PropertyValue class">
+<meta name="keywords" content="createObject()">
+<meta name="keywords" content="createList()">
+<meta name="keywords" content="createValue()">
+<meta name="keywords" content="mapProperties()">
+<meta name="keywords" content="isImmutable()">
+<meta name="keywords" content="immutable()">
+<meta name="keywords" content="mutable()">
+<meta name="keywords" content="getValueType()">
 <meta name="keywords" content="getKey()">
-<meta name="keywords" content="getSource()">
 <meta name="keywords" content="getValue()">
-<meta name="keywords" content="getMetaEntries()">
-<meta name="keywords" content="builder()">
-<meta name="keywords" content="of()">
+<meta name="keywords" content="getSource()">
+<meta name="keywords" content="setValue()">
+<meta name="keywords" content="getQualifiedKey()">
+<meta name="keywords" content="getParent()">
+<meta name="keywords" content="getVersion()">
+<meta name="keywords" content="isRoot()">
+<meta name="keywords" content="isLeaf()">
+<meta name="keywords" content="getMeta()">
 <meta name="keywords" content="getMetaEntry()">
-<meta name="keywords" content="toBuilder()">
+<meta name="keywords" content="getSize()">
+<meta name="keywords" content="iterator()">
+<meta name="keywords" content="setMeta()">
+<meta name="keywords" content="removeMeta()">
+<meta name="keywords" content="toMap()">
+<meta name="keywords" content="toLocalMap()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="toObjectValue()">
+<meta name="keywords" content="toListValue()">
+<meta name="keywords" content="deepClone()">
+<meta name="keywords" content="checkImmutable()">
+<meta name="keywords" content="incrementVersion()">
+<meta name="keywords" content="setVersion()">
+<meta name="keywords" content="setKey()">
+<meta name="keywords" content="setParent()">
 <meta name="keywords" content="equals()">
 <meta name="keywords" content="hashCode()">
-<meta name="keywords" content="toString()">
-<meta name="keywords" content="map()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PropertyValue (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="PropertyValue (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":9,"i11":9,"i12":10,"i13":10};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var data = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":42,"i12":10,"i13":10,"i14":10,"i15":42,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":9,"i27":9,"i28":9,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertyValue.html">Use</a></li>
@@ -61,16 +99,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertyValue.html" target="_top">Frames</a></li>
-<li><a href="PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -83,34 +119,46 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Class PropertyValue" class="title">Class PropertyValue</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.spi.PropertyValue</li>
@@ -122,17 +170,24 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code>, <code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></dd>
 </dl>
 <hr>
-<br>
-<pre>public final class <span class="typeNameLabel">PropertyValue</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
-<div class="block">Class modelling the result of a request for a property value. A property value is basically identified by its key.
- There might be reasons, where one want to further analyze, which PropertySources provided a value and which not, so
- it is possible to create a PropertyValue with a null value. Nevertheless in all cases the provider source (typically
- the name of the PropertySource) must be set.</div>
+<pre>public class <span class="typeNameLabel">PropertyValue</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</pre>
+<div class="block">Class modelling the result of a request for a property createValue. A property createValue is basically identified by its key.
+ There might be reasons, where one want to further analyze, which PropertySources provided a createValue and which not, so
+ it is possible to createObject a PropertyValue with a null createValue.
+
+  A PropertyValue represents an abstract data point in a configuration structure read. PropertyValues actually
+  represent a tree, with additional functionality for representing data lists/arrays using indexed children
+  names. This allows to support a full mapping of common document based configuration formats, such as JSON, YAML,
+  XML and more.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../serialized-form.html#org.apache.tamaya.spi.PropertyValue">Serialized Form</a></dd>
@@ -143,133 +198,649 @@
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ========== METHOD SUMMARY =========== -->
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></span></code></th>
+<td class="colLast">
+<div class="block">Enum of the different supported value types.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">PropertyValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">PropertyValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#builder-java.lang.String-java.lang.String-">builder</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</code>
-<div class="block">Creates a new builder instance.</div>
-</td>
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkImmutable()">checkImmutable</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#builder-java.lang.String-java.lang.String-java.lang.String-">builder</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</code>
-<div class="block">Creates a new builder instance.</div>
+<td class="colFirst"><code>static <a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createList()">createList</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+<td class="colFirst"><code>static <a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createList(java.lang.String)">createList</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Creates a new createValue of type <a href="PropertyValue.ValueType.html#ARRAY"><code>PropertyValue.ValueType.ARRAY</code></a>.</div>
+</td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#getKey--">getKey</a></span>()</code>
-<div class="block">The requested key.</div>
+<td class="colFirst"><code>static <a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createObject()">createObject</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#getMetaEntries--">getMetaEntries</a></span>()</code>
-<div class="block">Creates a full configuration map for this key, value pair and all its meta context data.</div>
+<td class="colFirst"><code>static <a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createObject(java.lang.String)">createObject</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Creates a new createValue of type <a href="PropertyValue.ValueType.html#MAP"><code>PropertyValue.ValueType.MAP</code></a>.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#getMetaEntry-java.lang.String-">getMetaEntry</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
-<div class="block">Access the given key from this value.</div>
+<td class="colFirst"><code>static <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createValue(java.lang.String,java.lang.String)">createValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new createValue of type <a href="PropertyValue.ValueType.html#VALUE"><code>PropertyValue.ValueType.VALUE</code></a>.</div>
 </td>
 </tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#getSource--">getSource</a></span>()</code>
-<div class="block">The source.</div>
+<td class="colFirst"><code>protected <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deepClone()">deepClone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a deep clone of this intance.</div>
 </td>
 </tr>
 <tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#getValue--">getValue</a></span>()</code>
-<div class="block">The value.</div>
-</td>
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKey()">getKey</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The requested key.</div>
+</td>
 </tr>
 <tr id="i9" class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#map-java.util.Map-java.lang.String-">map</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;config,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</code>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMeta()">getMeta</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a full configuration map for this key, createValue pair and all its getMeta context data.</div>
 </td>
 </tr>
 <tr id="i10" class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#map-java.util.Map-java.lang.String-java.util.Map-">map</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;config,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;metaData)</code>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMeta(java.lang.String)">getMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access the given key from this createValue.</div>
 </td>
 </tr>
 <tr id="i11" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#of-java.lang.String-java.lang.String-java.lang.String-">of</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</code>
-<div class="block">Creates a new PropertyValue without any metadata..</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetaEntry(java.lang.String)">getMetaEntry</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#getMeta(java.lang.String)"><code>getMeta(String)</code></a> instead of.</div>
+</div>
 </td>
 </tr>
 <tr id="i12" class="altColor">
-<td class="colFirst"><code><a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#toBuilder--">toBuilder</a></span>()</code>
-<div class="block">Creates a new builder instance based on this item.</div>
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParent()">getParent</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value's parent.</div>
 </td>
 </tr>
 <tr id="i13" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html#toString--">toString</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQualifiedKey()">getQualifiedKey</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a qualified name of a value in property format using '.' as separator, e.g.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize()">getSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the createValue's number of elements.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSource()">getSource</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <code>getMeta("source")</code>.</div>
+</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the node's createValue.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValueType()">getValueType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the item's current createValue type.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values version, the version is updated with each change written.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#immutable()">immutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Sets this instance and also all its direct an indirect children to immutable.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#incrementVersion()">incrementVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Called to mark a change on this instance.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isImmutable()">isImmutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the instance is immutable.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLeaf()">isLeaf</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the value is a leaf value (has no values).</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRoot()">isRoot</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the value is a root value.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapProperties(java.util.Map,java.lang.String)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapProperties(java.util.Map,java.lang.String,java.util.Map)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mutable()">mutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Clones this instance and all it's children, marking as mutable createValue.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMeta(java.lang.String)">removeMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Removes a getMeta entry.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKey(java.lang.String)">setKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Changes the entry's key, mapping also corresponding context entries.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.lang.Object)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an additional context data information.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaEntries)</code></th>
+<td class="colLast">
+<div class="block">Replaces/sets the context data.</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>protected <a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setParent(org.apache.tamaya.spi.PropertyValue)">setParent</a></span>&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;parent)</code></th>
+<td class="colLast">
+<div class="block">Sets the new parent, used iternally when converting between value types.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValue(java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Sets the createValue.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVersion(int)">setVersion</a></span>&#8203;(int&nbsp;version)</code></th>
+<td class="colLast">
+<div class="block">Sets the new version, used iternally when cloning.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toListValue()">toListValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a List PropertyValue.</div>
+</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toLocalMap()">toLocalMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the value tree to a property mapProperties using local keys.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toMap()">toMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the value tree to a property map.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toObjectValue()">toObjectValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a String representation of the tree.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator()" title="class or interface in java.lang" class="externalLink">spliterator</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ METHOD DETAIL ========== -->
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PropertyValue</h4>
+<pre>public&nbsp;PropertyValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PropertyValue</h4>
+<pre>protected&nbsp;PropertyValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not <code>null</code>.</dd>
+<dd><code>value</code> - the initial text createValue.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getKey--">
+<a id="createObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createObject</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;createObject()</pre>
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new empty root, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="createList()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createList</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;createList()</pre>
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new empty root, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="createValue(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createValue</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;createValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new createValue of type <a href="PropertyValue.ValueType.html#VALUE"><code>PropertyValue.ValueType.VALUE</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not <code>null</code>.</dd>
+<dd><code>value</code> - the createValue, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new createValue instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="createList(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createList</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;createList&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new createValue of type <a href="PropertyValue.ValueType.html#ARRAY"><code>PropertyValue.ValueType.ARRAY</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new createValue instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="createObject(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createObject</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;createObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new createValue of type <a href="PropertyValue.ValueType.html#MAP"><code>PropertyValue.ValueType.MAP</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new createValue instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="mapProperties(java.util.Map,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mapProperties</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;mapProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</pre>
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the String based mapProperties, not <code>null</code>.</dd>
+<dd><code>source</code> - the source name, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding createValue based mapProperties.</dd>
+</dl>
+</li>
+</ul>
+<a id="mapProperties(java.util.Map,java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mapProperties</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;mapProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</pre>
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the String based mapProperties, not <code>null</code>.</dd>
+<dd><code>source</code> - the source name, not <code>null</code>.</dd>
+<dd><code>metaData</code> - additional metadata, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding createValue based mapProperties.</dd>
+</dl>
+</li>
+</ul>
+<a id="mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mapProperties</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;mapProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</pre>
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the String based mapProperties, not <code>null</code>.</dd>
+<dd><code>source</code> - the source name, not <code>null</code>.</dd>
+<dd><code>metaData</code> - additional metadata, not <code>null</code>.</dd>
+<dd><code>prefix</code> - the prefix to add (optional).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding createValue based mapProperties.</dd>
+</dl>
+</li>
+</ul>
+<a id="isImmutable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isImmutable</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;isImmutable()</pre>
+<div class="block">Checks if the instance is immutable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true, if the instance is immutable.</dd>
+</dl>
+</li>
+</ul>
+<a id="immutable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>immutable</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;immutable()</pre>
+<div class="block">Sets this instance and also all its direct an indirect children to immutable. Any further changes will throw
+ an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="mutable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mutable</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;mutable()</pre>
+<div class="block">Clones this instance and all it's children, marking as mutable createValue.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new createValue clone.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValueType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValueType</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>&nbsp;getValueType()</pre>
+<div class="block">Get the item's current createValue type.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue type, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getKey()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getKey</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getKey()</pre>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getKey()</pre>
 <div class="block">The requested key.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -277,237 +848,494 @@
 </dl>
 </li>
 </ul>
-<a name="getSource--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getSource</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSource()</pre>
-<div class="block">The source.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the source, which provided the value, not <code>null</code>.</dd>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../org/apache/tamaya/spi/PropertySource.html#getName--"><code>PropertySource.getName().</code></a></dd>
-</dl>
-</li>
-</ul>
-<a name="getValue--">
+<a id="getValue()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getValue</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue()</pre>
-<div class="block">The value.</div>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the node's createValue.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the value, in case a value is null it is valid to return {#code null} as result for
- <a href="../../../../org/apache/tamaya/spi/PropertySource.html#get-java.lang.String-"><code>PropertySource.get(String)</code></a>.</dd>
+<dd>the createValue, or null.</dd>
 </dl>
 </li>
 </ul>
-<a name="getMetaEntries--">
+<a id="getSource()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaEntries</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getMetaEntries()</pre>
-<div class="block">Creates a full configuration map for this key, value pair and all its meta context data. This map
- is also used for subsequent processing, like value filtering.</div>
+<h4>getSource</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getSource()</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <code>getMeta("source")</code>.</div>
+</div>
+<div class="block">Get the source.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the property value entry map.</dd>
+<dd>the source, or null.</dd>
 </dl>
 </li>
 </ul>
-<a name="builder-java.lang.String-java.lang.String-">
+<a id="setValue(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>builder</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a>&nbsp;builder(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</pre>
-<div class="block">Creates a new builder instance.</div>
+<h4>setValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Sets the createValue.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>key</code> - the key, not <code>null</code>.</dd>
-<dd><code>source</code> - the source, typically the name of the <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
-               providing the value, not <code>null</code>.</dd>
+<dd><code>value</code> - the createValue</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new builder instance.</dd>
+<dd>this value for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isImmutable()"><code>isImmutable()</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="builder-java.lang.String-java.lang.String-java.lang.String-">
+<a id="getQualifiedKey()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>builder</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a>&nbsp;builder(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                                           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</pre>
-<div class="block">Creates a new builder instance.</div>
+<h4>getQualifiedKey</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getQualifiedKey()</pre>
+<div class="block">Get a qualified name of a value in property format using '.' as separator, e.g.
+ <code>a.b.c</code> or <code>a.b.c[0]</code> for indexed entries. Entries hereby also can have multiple
+ levels of indexing, e.g. <code>a[1].b.c[14].d</code> is a valid option.
+
+ The qualified key is defined by <a href="#getQualifiedKey()"><code>getQualifiedKey()</code></a> of it's parent concatenated with the key
+ of this node. If there is no parent, or the parent's qualified key is empty only <a href="#getKey()"><code>getKey()</code></a>
+ is returned. Additionally if the current values is an indeyed createValue the key is extended by the
+ index in brackets, e.g. <code>[0], [1], ...</code>. All the subsequent keys are valid qualified keys:
+ <pre>
+     a
+     a.b
+     a[0].b
+     [0]
+     a.b[4].c.d[0].[1].any
+ </pre></div>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>key</code> - the key, not <code>null</code>.</dd>
-<dd><code>source</code> - the source, typically the name of the <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
-               providing the value, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new builder instance.</dd>
+<dd>the qualified key, never null..</dd>
 </dl>
 </li>
 </ul>
-<a name="of-java.lang.String-java.lang.String-java.lang.String-">
+<a id="getParent()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>of</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;of(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-                               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</pre>
-<div class="block">Creates a new PropertyValue without any metadata..</div>
+<h4>getParent</h4>
+<pre class="methodSignature">public final&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;getParent()</pre>
+<div class="block">Get the value's parent.</div>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>key</code> - the key, not <code>null</code>.</dd>
-<dd><code>value</code> - the value.</dd>
-<dd><code>source</code> - the source, typically the name of the <a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
-               providing the value, not  <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new property value instance, or <code>null</code>,
-         if the value passed is <code>null</code>..</dd>
+<dd>the parent, or null.</dd>
 </dl>
 </li>
 </ul>
-<a name="getMetaEntry-java.lang.String-">
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getVersion()</pre>
+<div class="block">Get the values version, the version is updated with each change written.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the version.</dd>
+</dl>
+</li>
+</ul>
+<a id="isRoot()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRoot</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;isRoot()</pre>
+<div class="block">Checks if the value is a root value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true, if the current value is a root value.</dd>
+</dl>
+</li>
+</ul>
+<a id="isLeaf()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isLeaf</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;isLeaf()</pre>
+<div class="block">Checks if the value is a leaf value (has no values).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true, if the current value is a leaf value.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMeta()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMeta</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMeta()</pre>
+<div class="block">Creates a full configuration map for this key, createValue pair and all its getMeta context data. This map
+ is also used for subsequent processing, like createValue filtering.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property createValue entry map.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMetaEntry(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaEntry</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getMetaEntry(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
-<div class="block">Access the given key from this value. Valid keys are the key or any meta-context key.</div>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMetaEntry&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="#getMeta(java.lang.String)"><code>getMeta(String)</code></a> instead of.</div>
+</div>
+<div class="block">Access the given key from this createValue. Valid keys are the key or any getMeta-context key.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>key</code> - the key, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the value found, or <code>null</code>.</dd>
+<dd>the createValue found, or <code>null</code>.</dd>
 </dl>
 </li>
 </ul>
-<a name="toBuilder--">
+<a id="getMeta(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>toBuilder</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a>&nbsp;toBuilder()</pre>
-<div class="block">Creates a new builder instance based on this item.</div>
+<h4>getMeta</h4>
+<pre class="methodSignature">public final&nbsp;&lt;T&gt;&nbsp;T&nbsp;getMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Access the given key from this createValue. Valid keys are the key or any getMeta-context key.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue found, or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getSize()</pre>
+<div class="block">Get the createValue's number of elements.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>a new builder, never null.</dd>
+<dd>the getNumChilds of this multi createValue.</dd>
 </dl>
 </li>
 </ul>
-<a name="equals-java.lang.Object-">
+<a id="iterator()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<h4>iterator</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;iterator()</pre>
 <dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></dd>
 </dl>
 </li>
 </ul>
-<a name="hashCode--">
+<a id="setMeta(java.util.Map)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<h4>setMeta</h4>
+<pre class="methodSignature">public final&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaEntries)</pre>
+<div class="block">Replaces/sets the context data.</div>
 <dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>metaEntries</code> - the context data to be applied, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isImmutable()"><code>isImmutable()</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="toString--">
+<a id="setMeta(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature">public final&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Add an additional context data information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the context data key, not <code>null</code>.</dd>
+<dd><code>value</code> - the context createValue, not <code>null</code> (will be converted to String).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isImmutable()"><code>isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="removeMeta(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeMeta</h4>
+<pre class="methodSignature">public final&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;removeMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Removes a getMeta entry.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the entry's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isImmutable()"><code>isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;toMap()</pre>
+<div class="block">Convert the value tree to a property map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding property map, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toLocalMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLocalMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;toLocalMap()</pre>
+<div class="block">Convert the value tree to a property mapProperties using local keys.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding property mapProperties, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Create a String representation of the tree.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding String representation, not null.</dd>
 </dl>
 </li>
 </ul>
-<a name="map-java.util.Map-java.lang.String-">
+<a id="toObjectValue()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>map</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;map(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;config,
-                                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</pre>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<h4>toObjectValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&nbsp;toObjectValue()</pre>
+<div class="block">Convert an instance to a Object PropertyValue.</div>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>config</code> - the String based map, not <code>null</code>.</dd>
-<dd><code>source</code> - the source name, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the corresponding value based map.</dd>
+<dd>the list value, never null.</dd>
 </dl>
 </li>
 </ul>
-<a name="map-java.util.Map-java.lang.String-java.util.Map-">
+<a id="toListValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toListValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&nbsp;toListValue()</pre>
+<div class="block">Convert an instance to a List PropertyValue.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="deepClone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deepClone</h4>
+<pre class="methodSignature">protected&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;deepClone()</pre>
+<div class="block">Creates a deep clone of this intance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a clone, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="checkImmutable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkImmutable</h4>
+<pre class="methodSignature">protected final&nbsp;void&nbsp;checkImmutable()</pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+</dl>
+</li>
+</ul>
+<a id="incrementVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrementVersion</h4>
+<pre class="methodSignature">protected final&nbsp;int&nbsp;incrementVersion()</pre>
+<div class="block">Called to mark a change on this instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new version.</dd>
+</dl>
+</li>
+</ul>
+<a id="setVersion(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setVersion</h4>
+<pre class="methodSignature">protected final&nbsp;void&nbsp;setVersion&#8203;(int&nbsp;version)</pre>
+<div class="block">Sets the new version, used iternally when cloning.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - the new version.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKey(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKey</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Changes the entry's key, mapping also corresponding context entries.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the new key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the instance is immutable.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isImmutable()"><code>isImmutable()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setParent(org.apache.tamaya.spi.PropertyValue)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParent</h4>
+<pre class="methodSignature">protected&nbsp;<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;setParent&#8203;(<a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;parent)</pre>
+<div class="block">Sets the new parent, used iternally when converting between value types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parent</code> - the parent value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the simple value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>map</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;map(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;config,
-                                            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
-                                            <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;metaData)</pre>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>config</code> - the String based map, not <code>null</code>.</dd>
-<dd><code>source</code> - the source name, not <code>null</code>.</dd>
-<dd><code>metaData</code> - additional metadata, not <code>null</code>.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the corresponding value based map.</dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/PropertyValue.html">Use</a></li>
@@ -518,16 +1346,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/PropertyValue.html" target="_top">Frames</a></li>
-<li><a href="PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -540,26 +1360,31 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
 <li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ServiceContext.html b/apidocs/stable/org/apache/tamaya/spi/ServiceContext.html
index 07ae4bc..94971ee 100644
--- a/apidocs/stable/org/apache/tamaya/spi/ServiceContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/ServiceContext.html
@@ -1,50 +1,69 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ServiceContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ServiceContext (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.ServiceContext interface">
+<meta name="keywords" content="PRIORITY_ANNOTATION_AVAILABLE">
+<meta name="keywords" content="checkPriorityAnnotation()">
 <meta name="keywords" content="ordinal()">
+<meta name="keywords" content="getPriority()">
 <meta name="keywords" content="getService()">
 <meta name="keywords" content="create()">
 <meta name="keywords" content="getServices()">
 <meta name="keywords" content="getResources()">
 <meta name="keywords" content="getResource()">
+<meta name="keywords" content="register()">
+<meta name="keywords" content="reset()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServiceContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ServiceContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var data = {"i0":1,"i1":18,"i2":6,"i3":1,"i4":18,"i5":18,"i6":18,"i7":6,"i8":18,"i9":6,"i10":18,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ServiceContext.html">Use</a></li>
@@ -55,16 +74,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ServiceContext.html" target="_top">Frames</a></li>
-<li><a href="ServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -77,29 +94,41 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Interface ServiceContext" class="title">Interface ServiceContext</h2>
 </div>
 <div class="contentContainer">
@@ -107,12 +136,16 @@
 <ul class="blockList">
 <li class="blockList">
 <dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+</dl>
+<dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a>, <a href="../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></dd>
+<dd><code><a href="../spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></code>, <code><a href="../core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></code></dd>
 </dl>
 <hr>
-<br>
-<pre>public interface <span class="typeNameLabel">ServiceContext</span></pre>
+<pre>public interface <span class="typeNameLabel">ServiceContext</span>
+extends <a href="ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></pre>
 <div class="block">This class models the component that is managing the lifecycle current the
  services used by the Configuration API.</div>
 </li>
@@ -121,92 +154,253 @@
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ========== METHOD SUMMARY =========== -->
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="field.summary">
 <!--   -->
 </a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html#create-java.lang.Class-">create</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</code>
-<div class="block">Factory method to create a type, hereby a new instance is created on each access.</div>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PRIORITY_ANNOTATION_AVAILABLE">PRIORITY_ANNOTATION_AVAILABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">True if the <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation class is available on the classpath.</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html#getResource-java.lang.String-java.lang.ClassLoader-">getResource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-           <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)</code>
-<div class="block">Loads a resource from the current runtime context.</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html#getResources-java.lang.String-java.lang.ClassLoader-">getResources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-            <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)</code>
-<div class="block">Loads resources from the current runtime context.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html#getService-java.lang.Class-">getService</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</code>
-<div class="block">Access a service singleton via its type.</div>
-</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html#getServices-java.lang.Class-">getServices</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</code>
-<div class="block">Access a list current services, given its type.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html#ordinal--">ordinal</a></span>()</code>&nbsp;</td>
-</tr>
 </table>
 </li>
 </ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkPriorityAnnotation(java.lang.ClassLoader)">checkPriorityAnnotation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Checks if the <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation class is on the classpath.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class)">create</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType)</code></th>
+<td class="colLast">
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class,java.util.function.Supplier)">create</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPriority(java.lang.Object)">getPriority</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Checks the given instance for a @Priority annotation.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResource(java.lang.String)">getResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Loads a resource from the current runtime context.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResources(java.lang.String)">getResources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Loads resources from the current runtime context.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getService(java.lang.Class)">getService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType)</code></th>
+<td class="colLast">
+<div class="block">Access a service singleton via its type.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getService(java.lang.Class,java.util.function.Supplier)">getService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Access a service singleton via its type.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServices(java.lang.Class)">getServices</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType)</code></th>
+<td class="colLast">
+<div class="block">Access a createList current services, given its type.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServices(java.lang.Class,java.util.function.Supplier)">getServices</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Access a createList current services, given its type.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>default int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ordinal()">ordinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the ordinal of the ServiceContext.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.util.List,boolean)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;instances,
+        boolean&nbsp;force)</code></th>
+<td class="colLast">
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,T,boolean)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+        T&nbsp;instance,
+        boolean&nbsp;force)</code></th>
+<td class="colLast">
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Resets the current service context, removing all loaded services.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.ClassloaderAware">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></h3>
+<code><a href="ClassloaderAware.html#getClassLoader()">getClassLoader</a>, <a href="ClassloaderAware.html#init(java.lang.ClassLoader)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
 </li>
 </ul>
 </div>
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ METHOD DETAIL ========== -->
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="PRIORITY_ANNOTATION_AVAILABLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PRIORITY_ANNOTATION_AVAILABLE</h4>
+<pre>static final&nbsp;boolean PRIORITY_ANNOTATION_AVAILABLE</pre>
+<div class="block">True if the <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation class is available on the classpath.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="ordinal--">
+<a id="checkPriorityAnnotation(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkPriorityAnnotation</h4>
+<pre class="methodSignature">static&nbsp;boolean&nbsp;checkPriorityAnnotation&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block">Checks if the <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation class is on the classpath.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true, if the annotation is loaded.</dd>
+</dl>
+</li>
+</ul>
+<a id="ordinal()">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>ordinal</h4>
-<pre>int&nbsp;ordinal()</pre>
+<pre class="methodSignature">default&nbsp;int&nbsp;ordinal()</pre>
+<div class="block">Get the ordinal of the ServiceContext.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>ordinal of the ServiceContext. The one with the highest ordinal will be taken.</dd>
 </dl>
 </li>
 </ul>
-<a name="getService-java.lang.Class-">
+<a id="getPriority(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPriority</h4>
+<pre class="methodSignature">static&nbsp;int&nbsp;getPriority&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<div class="block">Checks the given instance for a @Priority annotation. If present the annotation's value is evaluated. If no such
+ annotation is present, a default priority of <code>1</code> is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - the instance, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a priority, by default 1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getService(java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getService</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;getService(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;getService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
 <div class="block">Access a service singleton via its type.
  If multiple implementations for the very serviceType exist then
- the one with the highest <a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation"><code>Priority</code></a> will be used.</div>
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>T</code> - the type of the service type.</dd>
@@ -215,20 +409,46 @@
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The instance to be used, or <code>null</code></dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if there are multiple service implementations with the maximum priority.</dd>
+<dd><code><a href="../ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if there are multiple service implementations with the maximum priority.</dd>
 </dl>
 </li>
 </ul>
-<a name="create-java.lang.Class-">
+<a id="getService(java.lang.Class,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getService</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;getService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</pre>
+<div class="block">Access a service singleton via its type.
+ If multiple implementations for the very serviceType exist then
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to be used, if no services could be evaluated. If null,
+                 an empty collection is returned, when no services
+                 could be located.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The instance to be used, or <code>null</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if there are multiple service implementations with the maximum priority.</dd>
+</dl>
+</li>
+</ul>
+<a id="create(java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>create</h4>
-<pre>&lt;T&gt;&nbsp;T&nbsp;create(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
-<div class="block">Factory method to create a type, hereby a new instance is created on each access.
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;T&nbsp;create&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.
  If multiple implementations for the very serviceType exist then
- the one with the highest <a href="http://docs.oracle.com/javase/7/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation"><code>Priority</code></a> will be used as the base
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used as the base
  for creating subsequent instances.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
@@ -238,23 +458,48 @@
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The new instance to be used, or <code>null</code></dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if there are multiple service implementations with the maximum priority.</dd>
+<dd><code><a href="../ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if there are multiple service implementations with the maximum priority.</dd>
 </dl>
 </li>
 </ul>
-<a name="getServices-java.lang.Class-">
+<a id="create(java.lang.Class,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;create&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</pre>
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.
+ If multiple implementations for the very serviceType exist then
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used as the base
+ for creating subsequent instances.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>supplier</code> - the supplier to create a new service, if no service could be autodetected.</dd>
+<dd><code>serviceType</code> - the service type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The new instance to be used, or <code>null</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ConfigException.html" title="class in org.apache.tamaya">ConfigException</a></code> - if there are multiple service implementations with the maximum priority.</dd>
+</dl>
+</li>
+</ul>
+<a id="getServices(java.lang.Class)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;getServices(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
-<div class="block">Access a list current services, given its type. The bootstrap mechanism should
+<pre class="methodSignature">default&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;getServices&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType)</pre>
+<div class="block">Access a createList current services, given its type. The bootstrap mechanism should
  order the instance for precedence, hereby the most significant should be
  first in order.</div>
 <dl>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
-<dd><code>T</code> - the type of the list element returned by this method</dd>
+<dd><code>T</code> - the type of the createList element returned by this method</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>serviceType</code> - the service type.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -262,66 +507,145 @@
 </dl>
 </li>
 </ul>
-<a name="getResources-java.lang.String-java.lang.ClassLoader-">
+<a id="getServices(java.lang.Class,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServices</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;getServices&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;supplier)</pre>
+<div class="block">Access a createList current services, given its type. The bootstrap mechanism should
+ order the instance for precedence, hereby the most significant should be
+ first in order. If no instances could be found, the instances supplied by the
+ supplier given are registered and used.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the createList element returned by this method</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to be used, if no services could be evaluated. If null,
+                 an empty collection is returned, when no services
+                 could be located.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The instance to be used, never <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getResources(java.lang.String)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getResources</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;&nbsp;getResources(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-                              <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)
-                       throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&gt;&nbsp;getResources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</pre>
 <div class="block">Loads resources from the current runtime context. This method allows to use runtime
  specific code to load resources, e.g. within OSGI environments.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>resource</code> - the resource, not <code>null</code>.</dd>
-<dd><code>cl</code> - the desired classloader context, if null, the current thread context classloader is used.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the resources found</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
-<a name="getResource-java.lang.String-java.lang.ClassLoader-">
+<a id="getResource(java.lang.String)">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getResource</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&nbsp;getResource(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;resource,
-                <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;cl)</pre>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;getResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;resource)</pre>
 <div class="block">Loads a resource from the current runtime context. This method allows to use runtime
  specific code to load a resource, e.g. within OSGI environments.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>resource</code> - the resource, not <code>null</code>.</dd>
-<dd><code>cl</code> - the desired classloader context, if null, the current thread context classloader is used.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the resource found, or <code>null</code>.</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
+<a id="register(java.lang.Class,java.lang.Object,boolean)">
+<!--   -->
+</a><a id="register(java.lang.Class,T,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+               T&nbsp;instance,
+               boolean&nbsp;force)</pre>
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - thy type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type to register, not null.</dd>
+<dd><code>instance</code> - the instance, not null.</dd>
+<dd><code>force</code> - if true, any existing instance will be replaced.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instance registered or already present.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.util.List,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;instances,
+                     boolean&nbsp;force)</pre>
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - thy type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type to register, not null.</dd>
+<dd><code>instances</code> - the instancea, not null.</dd>
+<dd><code>force</code> - if true, any existing instances will be replaced.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instances registered or already present.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature">void&nbsp;reset()</pre>
+<div class="block">Resets the current service context, removing all loaded services. This implicitly triggers a new load
+ of the service context.</div>
 </li>
 </ul>
 </li>
 </ul>
+</section>
+</li>
+</ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ServiceContext.html">Use</a></li>
@@ -332,16 +656,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ServiceContext.html" target="_top">Frames</a></li>
-<li><a href="ServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -354,26 +670,31 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li>Constr&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/ServiceContextManager.html b/apidocs/stable/org/apache/tamaya/spi/ServiceContextManager.html
index f4568c8..bf988ec 100644
--- a/apidocs/stable/org/apache/tamaya/spi/ServiceContextManager.html
+++ b/apidocs/stable/org/apache/tamaya/spi/ServiceContextManager.html
@@ -1,46 +1,62 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>ServiceContextManager (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ServiceContextManager (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi.ServiceContextManager class">
 <meta name="keywords" content="set()">
+<meta name="keywords" content="setToStaticClassLoader()">
 <meta name="keywords" content="getServiceContext()">
+<meta name="keywords" content="getDefaultClassLoader()">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServiceContextManager (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="ServiceContextManager (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9};
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
 var activeTableTab = "activeTableTab";
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ServiceContextManager.html">Use</a></li>
@@ -51,16 +67,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ServiceContextManager.html" target="_top">Frames</a></li>
-<li><a href="ServiceContextManager.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -73,6 +87,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -89,18 +106,27 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
 <!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
 <div class="header">
-<div class="subTitle">org.apache.tamaya.spi</div>
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spi</a></div>
 <h2 title="Class ServiceContextManager" class="title">Class ServiceContextManager</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
 <li>org.apache.tamaya.spi.ServiceContextManager</li>
@@ -111,11 +137,10 @@
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<br>
 <pre>public final class <span class="typeNameLabel">ServiceContextManager</span>
-extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">This singleton provides access to the services available in the current <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. The
- behaviour can be adapted, by calling <a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html#set-org.apache.tamaya.spi.ServiceContext-"><code>set(ServiceContext)</code></a> before accessing any
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">This singleton provides access to the services available in the current <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. The
+ behaviour can be adapted, by calling <a href="#set(org.apache.tamaya.spi.ServiceContext)"><code>set(ServiceContext)</code></a> before accessing any
  services.</div>
 </li>
 </ul>
@@ -124,39 +149,66 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.summary">
+<li class="blockList"><a id="method.summary">
 <!--   -->
 </a>
 <h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<table class="memberSummary">
 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html#getServiceContext--">getServiceContext</a></span>()</code>
-<div class="block">Ge <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultClassLoader()">getDefaultClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Evaluate the default classloader: This return the current thread context classloader, or this
+ class's classloader as fallback.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html#set-org.apache.tamaya.spi.ServiceContext-">set</a></span>(<a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContextProvider)</code>
-<div class="block">Replace the current <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+<td class="colFirst"><code>static <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServiceContext()">getServiceContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Ge <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServiceContext(java.lang.ClassLoader)">getServiceContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Ge <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(org.apache.tamaya.spi.ServiceContext)">set</a></span>&#8203;(<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Replace the current <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setToStaticClassLoader(org.apache.tamaya.spi.ServiceContext)">setToStaticClassLoader</a></span>&#8203;(<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Replace the current <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> for the ServiceContextManager's classloader in use.</div>
 </td>
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
@@ -164,58 +216,110 @@
 <ul class="blockList">
 <li class="blockList">
 <!-- ============ METHOD DETAIL ========== -->
+<section role="region">
 <ul class="blockList">
-<li class="blockList"><a name="method.detail">
+<li class="blockList"><a id="method.detail">
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="set-org.apache.tamaya.spi.ServiceContext-">
+<a id="set(org.apache.tamaya.spi.ServiceContext)">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>set</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;set(<a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContextProvider)</pre>
-<div class="block">Replace the current <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+<pre class="methodSignature">public static&nbsp;<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;set&#8203;(<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</pre>
+<div class="block">Replace the current <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>serviceContextProvider</code> - the new <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>, not <code>null</code>.</dd>
+<dd><code>serviceContext</code> - the new <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>, not <code>null</code>.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the currently used context after setting it.</dd>
 </dl>
 </li>
 </ul>
-<a name="getServiceContext--">
+<a id="setToStaticClassLoader(org.apache.tamaya.spi.ServiceContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setToStaticClassLoader</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;setToStaticClassLoader&#8203;(<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</pre>
+<div class="block">Replace the current <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> for the ServiceContextManager's classloader in use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceContext</code> - the new <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the currently used context after setting it.</dd>
+</dl>
+</li>
+</ul>
+<a id="getServiceContext(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServiceContext</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;getServiceContext&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block">Ge <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. If necessary the <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> will be laziliy loaded.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the classloader to be used, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> used.</dd>
+</dl>
+</li>
+</ul>
+<a id="getServiceContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServiceContext</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;getServiceContext()</pre>
+<div class="block">Ge <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. If necessary the <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> will be laziliy loaded.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> used.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultClassLoader()">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getServiceContext</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;getServiceContext()</pre>
-<div class="block">Ge <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>. If necessary the <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> will be laziliy loaded.</div>
+<h4>getDefaultClassLoader</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getDefaultClassLoader()</pre>
+<div class="block">Evaluate the default classloader: This return the current thread context classloader, or this
+ class's classloader as fallback.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>the <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> used.</dd>
+<dd>the classloder, not null.</dd>
 </dl>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
 </div>
+</main>
 <!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
 <li><a href="class-use/ServiceContextManager.html">Use</a></li>
@@ -226,16 +330,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/ServiceContextManager.html" target="_top">Frames</a></li>
-<li><a href="ServiceContextManager.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -248,6 +344,9 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
 <div>
 <ul class="subNavList">
@@ -264,10 +363,12 @@
 <li><a href="#method.detail">Method</a></li>
 </ul>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ChangeSupport.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ChangeSupport.html
new file mode 100644
index 0000000..2d7814f
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ChangeSupport.html
@@ -0,0 +1,339 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.ChangeSupport (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spi.ChangeSupport (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spi.ChangeSupport" class="title">Uses of Class<br>org.apache.tamaya.spi.ChangeSupport</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ChangeSupport.</span><code><span class="memberNameLink"><a href="../ChangeSupport.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ChangeSupport.</span><code><span class="memberNameLink"><a href="../ChangeSupport.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#%3Cinit%3E(org.apache.tamaya.spi.ChangeSupport,org.apache.tamaya.spi.PropertySource)">PropertySourceChangeSupport</a></span>&#8203;(<a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport,
+                           <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Create a new property change support instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a> in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BasePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BasePropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CLIPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/CLIPropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EnvironmentPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/EnvironmentPropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">JavaConfigurationPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MapPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/MapPropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertiesResourcePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/PropertiesResourcePropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SimplePropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SystemPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SystemPropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> with parameters of type <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BasePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a></span>&#8203;(<a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport)</code></th>
+<td class="colLast">
+<div class="block">Sets the change support.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ClassloaderAware.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ClassloaderAware.html
new file mode 100644
index 0000000..4b22d1b
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ClassloaderAware.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.ClassloaderAware (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.ClassloaderAware (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.apache.tamaya.spi.ClassloaderAware" class="title">Uses of Interface<br>org.apache.tamaya.spi.ClassloaderAware</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></span></code></th>
+<td class="colLast">
+<div class="block">ServiceContext implementation based on OSGI Service mechanisms.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span></code></th>
+<td class="colLast">
+<div class="block">This class models the component that is managing the lifecycle current the
+ services used by the Configuration API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></span></code></th>
+<td class="colLast">
+<div class="block">This class implements the (default) <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> to load the services required.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a> in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that implement <a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Provider which reads all <a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+ classpath.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClassloaderAware.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationBuilder.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationBuilder.html
new file mode 100644
index 0000000..6610dd4
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationBuilder.html
@@ -0,0 +1,681 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.ConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.ConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.apache.tamaya.spi.ConfigurationBuilder" class="title">Uses of Interface<br>org.apache.tamaya.spi.ConfigurationBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a> in <a href="../../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.apache.tamaya</a> that return <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../Configuration.html#createConfigurationBuilder()">createConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access a new configuration builder initialized with the current thread's context classloader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../ConfigurationProvider.html#getConfigurationBuilder()">getConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Create a new <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../Configuration.html#toBuilder()">toBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder using this instance as its base.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../core/internal/CoreConfigurationProvider.html#getConfigurationBuilder()">getConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfiguration.</span><code><span class="memberNameLink"><a href="../../core/internal/CoreConfiguration.html#toBuilder()">toBuilder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addDefaultPropertyConverters()">addDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add all auto-discoverable property converters to the context built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addDefaultPropertyFilters()">addDefaultPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add all auto-discoverable property filters to the context built.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addDefaultPropertySources()">addDefaultPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds all registered (default) property sources to the context built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">addPropertyFilters</a></span>&#8203;(<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for programmatically adding <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertySources(org.apache.tamaya.spi.PropertySource...)">addPropertySources</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Decreases the priority of the given property source, by moving it towards the start
+ of the chain of property sources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../ConfigurationProviderSpi.html#getConfigurationBuilder()">getConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Increases the priority of the given property source to be maximal, by moving it to
+ the tail of the of property source chain.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Increases the priority of the given property source, by moving it towards the end
+ of the chain of property sources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Decreases the priority of the given property source to be minimal, by moving it to
+ the start of the chain of property source chain.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code></th>
+<td class="colLast">
+<div class="block">Removes all converters for the given type, which actually renders a given type
+ unsupported for type conversion.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filter)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">removePropertyFilters</a></span>&#8203;(<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">Removes the given property sources, if existing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertySources(org.apache.tamaya.spi.PropertySource...)">removePropertySources</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">Removes the given property sources, if existing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">setClassLoader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Set the classloader to be used for loading of configuration resources, equals to
+ <code>setServiceContext(ServiceContextManager.getServiceContext(classLoader))</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds (overrides existing value) the given sources as property sources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Adds (overrides existing value with same same keys) the given sources as property sources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Sets the ServiceContext to be used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property converters using the given comparator.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property filters using the given comparator.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property sources using the given comparator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addDefaultPropertyConverters()">addDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addDefaultPropertyFilters()">addDefaultPropertyFilters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addDefaultPropertySources()">addDefaultPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code></th>
+<td class="colLast">
+<div class="block">Adds the given sources as property sources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#loadDefaults()">loadDefaults</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">setClassLoader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Allows to setCurrent configuration context during unit tests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationContext.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationContext.html
index 3f07ba3..9f45eb1 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationContext.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.ConfigurationContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.ConfigurationContext (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.ConfigurationContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.ConfigurationContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConfigurationContext.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,34 +76,58 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.ConfigurationContext" class="title">Uses of Interface<br>org.apache.tamaya.spi.ConfigurationContext</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -99,299 +135,368 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> that return <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../../package-summary.html">org.apache.tamaya</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.apache.tamaya</a> that return <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/ConfigurationProvider.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a> instead of.</span></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/Configuration.html#getContext--">getContext</a></span>()</code>
+<td class="colFirst"><code><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../../Configuration.html#getContext()">getContext</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access a configuration's context.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.apache.tamaya</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/ConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
+<td class="colFirst"><code>static <a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../ConfigurationProvider.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Creates a new configuration instance based on the given context.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/ConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use #setConfiguration(Configuration) instead of.</span></div>
-</div>
-</td>
-</tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoreConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../core/internal/CoreConfigurationProvider.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/CoreConfiguration.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">CoreConfiguration</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/CoreConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">CoreConfigurationBuilder</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya.spi</a> declared as <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">An empty configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../ConversionContext.html#getConfigurationContext()">getConfigurationContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="../ConversionContext.html#getConfiguration()"><code>ConversionContext.getConfiguration()</code></a> and <a href="../../Configuration.html#getContext()"><code>Configuration.getContext()</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../FilterContext.html#getConfigurationContext()">getConfigurationContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current configurationContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../ConfigurationProviderSpi.html#createConfiguration(org.apache.tamaya.spi.ConfigurationContext)">createConfiguration</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a multi createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationContext</a></span></code>
-<div class="block">Default implementation of a simple ConfigurationContext.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Default implementation of a simple <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#build--">build</a></span>()</code>
-<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
-</td>
+<td class="colFirst"><code><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfiguration.html#getContext()">getContext</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#getContext--">getContext</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationSnapshot.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationSnapshot.html#getContext()">getContext</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilter-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">applyFilter</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-           <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Filters a single value.</div>
+<td class="colFirst"><code>static <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">applyFilter</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+           <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilters-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">applyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
-            <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
+            <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
 <div class="block">Filters all properties.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html#evaluateRawValues-org.apache.tamaya.spi.ConfigurationContext-">evaluateRawValues</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Evaluates all property values from a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/ConfigValueEvaluator.html#evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateAllValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all values using a <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#evaluateRawValues-org.apache.tamaya.spi.ConfigurationContext-">evaluateRawValues</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code>default <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates single createValue using a <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html#evaluteRawValue-java.lang.String-org.apache.tamaya.spi.ConfigurationContext-">evaluteRawValue</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-               <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Evaluates single value using a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/ConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all property values from a <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultMetaDataProvider.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultMetaDataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MetadataProvider.</span><code><span class="memberNameLink"><a href="../../spisupport/MetadataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Initializes the provider with the given context.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#evaluteRawValue-java.lang.String-org.apache.tamaya.spi.ConfigurationContext-">evaluteRawValue</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-               <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#setContext-org.apache.tamaya.spi.ConfigurationContext-">setContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfiguration.html#DefaultConfiguration-org.apache.tamaya.spi.ConfigurationContext-">DefaultConfiguration</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfiguration.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">DefaultConfiguration</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
 <div class="block">Constructor.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#DefaultConfigurationContextBuilder-org.apache.tamaya.spi.ConfigurationContext-">DefaultConfigurationContextBuilder</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">DefaultConfigurationBuilder</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
 <div class="block">Creates a new builder instance.</div>
 </td>
 </tr>
 </tbody>
 </table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#build--">build</a></span>()</code>
-<div class="block">Builds a new <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> based on the data in this builder.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#getConfigurationContext--">getConfigurationContext</a></span>()</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Will be removed in favour of <a href="../../../../../org/apache/tamaya/Configuration.html#getContext--"><code>Configuration.getContext()</code></a>.</span></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#getContext--">getContext</a></span>()</code>
-<div class="block">Get the current context.</div>
-</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#createConfiguration-org.apache.tamaya.spi.ConfigurationContext-">createConfiguration</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Create a <a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> instance using the given context.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code>
-<div class="block">Sets the configuration.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationProviderSpi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">use <a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html#setConfiguration-org.apache.tamaya.Configuration-"><code>ConfigurationProviderSpi.setConfiguration(Configuration)</code></a></span></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#setContext-org.apache.tamaya.spi.ConfigurationContext-">setContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Init this builder instance with the given <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance.</div>
-</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#Builder-org.apache.tamaya.Configuration-org.apache.tamaya.spi.ConfigurationContext-java.lang.String-org.apache.tamaya.TypeLiteral-">Builder</a></span>(<a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration,
-       <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code>
-<div class="block">Creates a new Builder instance.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a single value access
- using <a href="../../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
-             <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a multi value access
- using <a href="../../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
-</td>
-</tr>
-</tbody>
-</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -400,16 +505,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConfigurationContext.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -422,11 +519,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html
index d6017e3..78a8f56 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.ConfigurationProviderSpi (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.ConfigurationProviderSpi (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.ConfigurationProviderSpi (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.ConfigurationProviderSpi (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProviderSpi.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,69 +76,92 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.ConfigurationProviderSpi" class="title">Uses of Interface<br>org.apache.tamaya.spi.ConfigurationProviderSpi</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">DefaultConfigurationProvider</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationProvider</a></span></code></th>
+<td class="colLast">
 <div class="block">Implementation of the Configuration API.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -135,16 +170,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html" target="_top">Frames</a></li>
-<li><a href="ConfigurationProviderSpi.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -157,11 +184,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.Builder.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.Builder.html
index 5409638..a554e8a 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.Builder.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.Builder.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.ConversionContext.Builder (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.spi.ConversionContext.Builder (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.spi.ConversionContext.Builder (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.spi.ConversionContext.Builder (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConversionContext.Builder.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.Builder.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,107 +76,155 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.spi.ConversionContext.Builder" class="title">Uses of Class<br>org.apache.tamaya.spi.ConversionContext.Builder</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</code>
-<div class="block">Add the formats provided by a <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>.</div>
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#addSupportedFormats(java.lang.Class,java.lang.String...)">addSupportedFormats</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;converterType,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;formatDescriptors)</code></th>
+<td class="colLast">
+<div class="block">Add the formats provided by a <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setAnnotatedElement-java.lang.reflect.AnnotatedElement-">setAnnotatedElement</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect">AnnotatedElement</a>&nbsp;annotatedElement)</code>
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setAnnotatedElement(java.lang.reflect.AnnotatedElement)">setAnnotatedElement</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">AnnotatedElement</a>&nbsp;annotatedElement)</code></th>
+<td class="colLast">
 <div class="block">Sets the annotated element, when configuration is injected.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setConfiguration-org.apache.tamaya.Configuration-">setConfiguration</a></span>(<a href="../../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code>
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
 <div class="block">Sets the configuration.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setConfigurationContext-org.apache.tamaya.spi.ConfigurationContext-">setConfigurationContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code>
-<div class="block">Sets the configuration.</div>
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setKey(java.lang.String)">setKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Sets the key.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#setKey-java.lang.String-">setKey</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
-<div class="block">Sets the key.</div>
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setTargetType(org.apache.tamaya.TypeLiteral)">setTargetType</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Sets the target type explicitly.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setValues(java.util.List)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Sets the underlying values evaluated.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setValues(org.apache.tamaya.spi.PropertyValue...)">setValues</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Sets the underlying values evaluated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../ConversionContext.html#toBuilder()">toBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a builder based on this instance.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.html#ConversionContext-org.apache.tamaya.spi.ConversionContext.Builder-">ConversionContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;builder)</code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ConversionContext.html#%3Cinit%3E(org.apache.tamaya.spi.ConversionContext.Builder)">ConversionContext</a></span>&#8203;(<a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a>&nbsp;builder)</code></th>
+<td class="colLast">
 <div class="block">Private constructor used from builder.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -173,16 +233,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConversionContext.Builder.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.Builder.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -195,11 +247,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.html
index 7fa46e7..e59ffb3 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ConversionContext.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.ConversionContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.spi.ConversionContext (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.spi.ConversionContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.spi.ConversionContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConversionContext.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,30 +76,50 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.spi.ConversionContext" class="title">Uses of Class<br>org.apache.tamaya.spi.ConversionContext</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal.converters">org.apache.tamaya.core.internal.converters</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal.converters">org.apache.tamaya.core.internal.converters</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of the converters provided by default.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -95,162 +127,296 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal.converters">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal.converters">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a> in <a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a> in <a href="../../core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a> with parameters of type <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PathConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink">BigDecimal</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BigDecimalConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/BigDecimalConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DoubleConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math" class="externalLink">BigInteger</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BigIntegerConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/BigIntegerConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util">Currency</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CurrencyConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BooleanConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/BooleanConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
-<td class="colLast"><span class="typeNameLabel">LongConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ByteConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/ByteConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="type parameter in EnumConverter">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">EnumConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CharConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/CharConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang">Short</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ShortConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClassConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/ClassConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a></code></td>
-<td class="colLast"><span class="typeNameLabel">URLConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html?is-external=true" title="class or interface in java.util" class="externalLink">Currency</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CurrencyConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/CurrencyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang">Float</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FloatConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DoubleConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/DoubleConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
-<td class="colLast"><span class="typeNameLabel">NumberConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html?is-external=true" title="class or interface in java.time" class="externalLink">Duration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DurationConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/DurationConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FileConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FileConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/FileConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
-<td class="colLast"><span class="typeNameLabel">IntegerConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FloatConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/FloatConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math">BigDecimal</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BigDecimalConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html?is-external=true" title="class or interface in java.time" class="externalLink">Instant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InstantConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/InstantConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BigIntegerConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">IntegerConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/IntegerConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html?is-external=true" title="class or interface in java.lang">Character</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CharConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDate</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalDateConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/LocalDateConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ByteConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalDateTime</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalDateTimeConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/LocalDateTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a></code></td>
-<td class="colLast"><span class="typeNameLabel">URIConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html?is-external=true" title="class or interface in java.time" class="externalLink">LocalTime</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalTimeConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/LocalTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ClassConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LongConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/LongConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BooleanConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html?is-external=true" title="class or interface in java.time" class="externalLink">MonthDay</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MonthDayConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/MonthDayConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang" class="externalLink">Number</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NumberConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/NumberConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetDateTime</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OffsetDateTimeConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/OffsetDateTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/OffsetTime.html?is-external=true" title="class or interface in java.time" class="externalLink">OffsetTime</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OffsetTimeConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/OffsetTimeConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OptionalConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/OptionalConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file" class="externalLink">Path</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/PathConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ShortConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/ShortConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SupplierConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/SupplierConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">URIConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/URIConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">URLConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/URLConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/Year.html?is-external=true" title="class or interface in java.time" class="externalLink">Year</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">YearConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/YearConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html?is-external=true" title="class or interface in java.time" class="externalLink">YearMonth</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">YearMonthConverter.</span><code><span class="memberNameLink"><a href="../../core/internal/converters/YearMonthConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya.spi</a> declared as <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#build--">build</a></span>()</code>
+<td class="colFirst"><code>static <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../ConversionContext.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Builds a new context instance.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="type parameter in PropertyConverter">T</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html#convert-java.lang.String-org.apache.tamaya.spi.ConversionContext-">convert</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-       <a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code>
+<td class="colFirst"><code><a href="../PropertyConverter.html" title="type parameter in PropertyConverter">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverter.</span><code><span class="memberNameLink"><a href="../PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;context)</code></th>
+<td class="colLast">
 <div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../spisupport/EnumConverter.html" title="type parameter in EnumConverter">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EnumConverter.</span><code><span class="memberNameLink"><a href="../../spisupport/EnumConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ConversionContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -259,16 +425,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ConversionContext.html" target="_top">Frames</a></li>
-<li><a href="ConversionContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -281,11 +439,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/Experimental.html b/apidocs/stable/org/apache/tamaya/spi/class-use/Experimental.html
index 47b0f6c..4009478 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/Experimental.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/Experimental.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.Experimental (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.spi.Experimental (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.spi.Experimental (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.spi.Experimental (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../Experimental.html" title="annotation in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/Experimental.html" target="_top">Frames</a></li>
-<li><a href="Experimental.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,78 +76,155 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.spi.Experimental" class="title">Uses of Class<br>org.apache.tamaya.spi.Experimental</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with annotations of type <a href="../../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.apache.tamaya.spi</a> with annotations of type <a href="../Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#getConfigEntries--">getConfigEntries</a></span>()</code>
-<div class="block">This map contains the following keys:
- 
- the original value <b>before</b> any filters were applied on it.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#isSinglePropertyScoped--">isSinglePropertyScoped</a></span>()</code>
-<div class="block">Method that determines if filtering is done for a single property accessed, or as part of call to
- <code>getProperties()</code>.</div>
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></span></code></th>
+<td class="colLast">
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
 </td>
 </tr>
 </tbody>
 </table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with annotations of type <a href="../Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Add a change listener for this properrty source.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../FilterContext.html#getConfigEntries()">getConfigEntries</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This mapProperties contains the following keys:
+ 
+ the original createValue <b>before</b> any filters were applied on it.
+ all values starting with an <code>_&lt;key&gt;.</code>, for example <code>a.createValue</code>
+ may have a mapProperties setCurrent with <code>a.createValue</code> (oringinal createValue), <code>_a.createValue.origin,
+ _a.createValue.type, etc</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current version.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../FilterContext.html#isSinglePropertyScoped()">isSinglePropertyScoped</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Method that determines if filtering is done for a single property accessed, or as part of call to
+ <code>getProperties()</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Removes all registered change listeners, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Removes a change listener for this properrty source.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../Experimental.html" title="annotation in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -144,16 +233,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/Experimental.html" target="_top">Frames</a></li>
-<li><a href="Experimental.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -166,11 +247,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/FilterContext.html b/apidocs/stable/org/apache/tamaya/spi/class-use/FilterContext.html
index f72a59c..462cdd5 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/FilterContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/FilterContext.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.FilterContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.spi.FilterContext (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.spi.FilterContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.spi.FilterContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../FilterContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/FilterContext.html" target="_top">Frames</a></li>
-<li><a href="FilterContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,26 +76,44 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.spi.FilterContext" class="title">Uses of Class<br>org.apache.tamaya.spi.FilterContext</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -91,43 +121,73 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html#filterProperty-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.FilterContext-">filterProperty</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-              <a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code>
-<div class="block">Maps the current <code>valueToBeFiltered</code> value to a new value.</div>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFilter.</span><code><span class="memberNameLink"><a href="../PropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+              <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Maps the current <code>value</code> to a new value.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RegexPropertyFilter.</span><code><span class="memberNameLink"><a href="../../spisupport/RegexPropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;valueToBeFiltered,
+              <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../FilterContext.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -136,16 +196,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/FilterContext.html" target="_top">Frames</a></li>
-<li><a href="FilterContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -158,11 +210,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ListValue.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ListValue.html
new file mode 100644
index 0000000..ca25056
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ListValue.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.ListValue (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spi.ListValue (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ListValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spi.ListValue" class="title">Uses of Class<br>org.apache.tamaya.spi.ListValue</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#addList()">addList</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds an anonymous array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#addList(java.lang.String)">addList</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Sets the given list value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#addPropertyValue(org.apache.tamaya.spi.PropertyValue)">addPropertyValue</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a createValue to the array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#addValue(java.lang.String)">addValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds an anonymous text value to the array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#addValues(java.lang.String...)">addValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Adds text values to the array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#createList()">createList</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#createList(java.lang.String)">createList</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Creates a new createValue of type <a href="../PropertyValue.ValueType.html#ARRAY"><code>PropertyValue.ValueType.ARRAY</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#deepClone()">deepClone</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#from(java.util.Collection)">from</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Merges multiple values into one single node.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#mutable()">mutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#toListValue()">toListValue</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#toListValue()">toListValue</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#toListValue()">toListValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a List PropertyValue.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getLists()">getLists</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get all array elements of type <a href="../ListValue.html" title="class in org.apache.tamaya.spi"><code>ListValue</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getLists(java.lang.String)">getLists</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the array elements, filtered by the given name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ListValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ObjectValue.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ObjectValue.html
new file mode 100644
index 0000000..c06f370
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ObjectValue.html
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.ObjectValue (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spi.ObjectValue (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spi.ObjectValue" class="title">Uses of Class<br>org.apache.tamaya.spi.ObjectValue</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#addObject()">addObject</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds an anonymous child createObject to the array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#addObject(java.lang.String)">addObject</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Sets the given object vaöue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#createObject()">createObject</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new (invisible) root, which is a node with an empty name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#createObject(java.lang.String)">createObject</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Creates a new createValue of type <a href="../PropertyValue.ValueType.html#MAP"><code>PropertyValue.ValueType.MAP</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#deepClone()">deepClone</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#from(java.util.Collection)">from</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Merges multiple values into one single node.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#mutable()">mutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Clones this instance and all it's children, marking as mutable value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setPropertyValue(org.apache.tamaya.spi.PropertyValue)">setPropertyValue</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds another existing node, hereby setting the corresponding parent node.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setValue(java.lang.String,java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;k,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Sets the given key, value pair.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setValues(java.util.Map)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setValues(java.util.Map,java.lang.String,boolean)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+         boolean&nbsp;overwriteExisting)</code></th>
+<td class="colLast">
+<div class="block">Applies a mapProperties of <code>Map&lt;String,String&gt;</code> to this instance as values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#toObjectValue()">toObjectValue</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#toObjectValue()">toObjectValue</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#toObjectValue()">toObjectValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert an instance to a Object PropertyValue.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getObjects(java.lang.String)">getObjects</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the array elements, filtered by the given predicate.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyConverter.html b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyConverter.html
index 7e7d058..70bc887 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyConverter.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyConverter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.PropertyConverter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.PropertyConverter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertyConverter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertyConverter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertyConverter.html" target="_top">Frames</a></li>
-<li><a href="PropertyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,34 +76,50 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.PropertyConverter" class="title">Uses of Interface<br>org.apache.tamaya.spi.PropertyConverter</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal.converters">org.apache.tamaya.core.internal.converters</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of the converters provided by default.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal.converters">org.apache.tamaya.core.internal.converters</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -99,123 +127,23 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal.converters">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a> in <a href="../../core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a> that implement <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>protected &lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#createDefaultPropertyConverter-org.apache.tamaya.TypeLiteral-">createDefaultPropertyConverter</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code>
-<div class="block">Creates a dynamic PropertyConverter for the given target type.</div>
-</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertyConverter--">getPropertyConverter</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>
-<div class="block">Get a map of all property converters currently registered.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code>
-<div class="block">Get the list of all current registered converters for the given target type.</div>
-</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                    <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;propertyConverter)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">addPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                     <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyConverterManager.html#register-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">register</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType,
-        <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;converter)</code>
-<div class="block">Registers a ew converter instance.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">removePropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;converters)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">addPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                     <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">removePropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal.converters">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a> in <a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a> that implement <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigDecimalConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to BigDecimal, the supported format is one of the following:
  
      232573527352.76352753
@@ -229,7 +157,8 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">BigIntegerConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to BigInteger, the supported format is one of the following:
  
      0xFFFFFF
@@ -243,23 +172,25 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters">BooleanConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Boolean.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters">ByteConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Byte, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
@@ -269,20 +200,22 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters">CharConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Character, the supported format is one of the following:
  
      'a'
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
  </div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters">ClassConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Class, hereby using the following classloaders:
  
      The current ThreadContext ClassLoader
@@ -293,11 +226,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters">CurrencyConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Currency, the supported format is one of the following:
  
      CHF (currency code)
-     123 (numeric currency value &gt;
+     123 (numeric currency createValue &gt;
      = 0)
      DE (ISO 2-digit country)
      de_DE, de_DE_123 (Locale)
@@ -306,63 +240,55 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters">DoubleConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Double, using the Java number syntax:
  (-)?</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters">EnumConverter</a>&lt;T&gt;</span></code>
-<div class="block">Converter, converting from String to tge given enum type.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters">DurationConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Boolean.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></span></code>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters">FileConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to File, using new File(createValue).</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters">FloatConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Float, using the Java number syntax:
  (-)?</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></span></code>
-<div class="block">Converter, converting from String to Integer, the supported format is one of the following:
- 
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
-     MIN_VALUE (ignoring case)
-     MIN (ignoring case)
-     MAX_VALUE (ignoring case)
-     MAX (ignoring case)
- </div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters">InstantConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Instant.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></span></code>
-<div class="block">Converter, converting from String to Long, the supported format is one of the following:
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters">IntegerConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Integer, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
@@ -372,29 +298,102 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to LocalDate.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalDateTimeConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to LocalDateTime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">LocalTimeConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to LocalTime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters">LongConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Long, the supported format is one of the following:
+ 
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
+     MIN_VALUE (ignoring case)
+     MIN (ignoring case)
+     MAX_VALUE (ignoring case)
+     MAX (ignoring case)
+ </div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters">MonthDayConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Year.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters">NumberConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Number.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetDateTimeConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to OffsetDateTime.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></span></code>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters">OffsetTimeConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to OffsetTime.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters">OptionalConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Optional.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters">PathConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Path, using FileSystem.getPath(createValue).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters">ShortConverter</a></span></code></th>
+<td class="colLast">
 <div class="block">Converter, converting from String to Short, the supported format is one of the following:
  
-     123 (byte value)
-     0xFF (byte value)
-     0XDF (byte value)
-     0D1 (byte value)
-     -123 (byte value)
-     -0xFF (byte value)
-     -0XDF (byte value)
-     -0D1 (byte value)
+     123 (byte createValue)
+     0xFF (byte createValue)
+     0XDF (byte createValue)
+     0D1 (byte createValue)
+     -123 (byte createValue)
+     -0xFF (byte createValue)
+     -0XDF (byte createValue)
+     -0D1 (byte createValue)
      MIN_VALUE (ignoring case)
      MIN (ignoring case)
      MAX_VALUE (ignoring case)
@@ -404,142 +403,326 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></span></code>
-<div class="block">Converter, converting from String to URI, using new URI(value).</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters">SupplierConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Supplier.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></span></code>
-<div class="block">Converter, converting from String to URI, using new URL(value).</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters">URIConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to URI, using new URI(createValue).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters">URLConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to URL, using new URL(createValue).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to Year.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters">YearMonthConverter</a></span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to YearMonth.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertyConverter--">getPropertyConverter</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current registered property converters.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters--">getPropertyConverters</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
 <div class="block">
- This method returns the Map of registered PropertyConverters
+ This method returns the Map of registered <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
  per type.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyConverters-org.apache.tamaya.TypeLiteral-">getPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
 <div class="block">
- This method returns the registered PropertyConverters for a given type.</div>
+ This method returns the registered <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default &lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property converters using the given comparator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Converter, converting from String to the given enum type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type parameters of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#propertyConverters">propertyConverters</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected &lt;T&gt;&nbsp;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyConverterManager.html#createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)">createDefaultPropertyConverter</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Creates a dynamic <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> for the given target type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return types with arguments of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#getDefaultPropertyConverters()">getDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyConverterManager.html#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a mapProperties of all property converters currently registered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyConverterManager.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Get the createList of all current registered converters for the given target type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#addPropertyConverter-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter-">addPropertyConverter</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
-                    <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;propertyConverter)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">addPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                     <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code>
-<div class="block">This method can be used for adding <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-org.apache.tamaya.spi.PropertyConverter...-">removePropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;...&nbsp;propertyConverters)</code>
-<div class="block">Removes the given PropertyConverter instances for the given type,
- if existing.</div>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyConverterManager.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyConverterManager.html#register(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter)">register</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType,
+        <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;converter)</code></th>
+<td class="colLast">
+<div class="block">Registers a new converters instance.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">addPropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                     <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code>
-<div class="block">This method can be used for adding <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
-</td>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</code>
-<div class="block">Allows to add information on the supported/tried formats, which can be shown to the user, especially when
- conversion failed.</div>
-</td>
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConversionContext.Builder.html#addSupportedFormats-java.lang.Class-java.lang.String...-">addSupportedFormats</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;converterType,
-                   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;formatDescriptors)</code>
-<div class="block">Add the formats provided by a <a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyConverters-org.apache.tamaya.TypeLiteral-java.util.Collection-">removePropertyConverters</a></span>(<a href="../../../../../org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
-                        <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code>
-<div class="block">Removes the given PropertyConverter instances for the given type,
- if existing.</div>
-</td>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                           <a href="../../spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -548,16 +731,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertyConverter.html" target="_top">Frames</a></li>
-<li><a href="PropertyConverter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -570,11 +745,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyFilter.html b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyFilter.html
index c3d733e..9585afc 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyFilter.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyFilter.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.PropertyFilter (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.PropertyFilter (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertyFilter (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertyFilter (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertyFilter.html" target="_top">Frames</a></li>
-<li><a href="PropertyFilter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,30 +76,44 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.PropertyFilter" class="title">Uses of Interface<br>org.apache.tamaya.spi.PropertyFilter</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -95,163 +121,230 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertyFilters--">getPropertyFilters</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertyFilters--">getPropertyFilters</a></span>()</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">addPropertyFilters</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFilterComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFilterComparator.html#compare-org.apache.tamaya.spi.PropertyFilter-org.apache.tamaya.spi.PropertyFilter-">compare</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter1,
-       <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter2)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">removePropertyFilters</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertyFilters-java.util.Collection-">addPropertyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertyFilters-java.util.Collection-">removePropertyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#sortPropertyFilter-java.util.Comparator-">sortPropertyFilter</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertyFilters--">getPropertyFilters</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current chain of property filters.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertyFilters--">getPropertyFilters</a></span>()</code>
-<div class="block">Access the current PropertyFilter instances.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">addPropertyFilters</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code>
-<div class="block">Adds the given PropertyFilter instances, hereby the instances are added
- to the end of the list with highest priority.</div>
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">addPropertyFilters</a></span>&#8203;(<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyFilters-org.apache.tamaya.spi.PropertyFilter...-">removePropertyFilters</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code>
-<div class="block">Removes the given PropertyFilter instances, if existing.</div>
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">removePropertyFilters</a></span>&#8203;(<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>...&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertyFilters-java.util.Collection-">addPropertyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code>
-<div class="block">Adds the given PropertyFilter instances, hereby the instances are added
- to the end of the list with highest priority.</div>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertyFilters-java.util.Collection-">removePropertyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code>
-<div class="block">Removes the given PropertyFilter instances, if existing.</div>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filter)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#sortPropertyFilter-java.util.Comparator-">sortPropertyFilter</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
 <div class="block">Sorts the current registered property filters using the given comparator.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></span></code></th>
+<td class="colLast">
+<div class="block">Predicate filtering using a regex expression operating on the key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type parameters of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#propertyFilters">propertyFilters</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return types with arguments of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFilterComparator.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFilterComparator.html#compare(org.apache.tamaya.spi.PropertyFilter,org.apache.tamaya.spi.PropertyFilter)">compare</a></span>&#8203;(<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter1,
+       <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                           <a href="../../spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -260,16 +353,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertyFilter.html" target="_top">Frames</a></li>
-<li><a href="PropertyFilter.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -282,11 +367,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySource.html b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySource.html
index aa0b9ac..e01faa3 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySource.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySource.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.PropertySource (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.PropertySource (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertySource (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertySource (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertySource.html" target="_top">Frames</a></li>
-<li><a href="PropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,398 +76,706 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.PropertySource" class="title">Uses of Interface<br>org.apache.tamaya.spi.PropertySource</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.propertysource">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> that implement <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertySource-java.lang.String-">getPropertySource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#getPropertySources--">getPropertySources</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#getPropertySources--">getPropertySources</a></span>()</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySourcesToAdd)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>BasePropertySource</code></a></div>
+</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;sources)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertySourceComparator.html#compare-org.apache.tamaya.spi.PropertySource-org.apache.tamaya.spi.PropertySource-">compare</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source1,
-       <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source2)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#decreasePriority-org.apache.tamaya.spi.PropertySource-">decreasePriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static int</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertySourceComparator.html#getOrdinal-org.apache.tamaya.spi.PropertySource-">getOrdinal</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
-<div class="block">Evaluates an ordinal value from a <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, Herey the ordinal of type <code>int</code>
- is evaluated as follows:
- 
-     It evaluates the <code>String</code> value for <a href="../../../../../org/apache/tamaya/spi/PropertySource.html#TAMAYA_ORDINAL"><code>TAMAYA_ORDINAL</code></a> and tries
-     to convert it to an <code>int</code> value, using <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true#parseInt-java.lang.String-" title="class or interface in java.lang"><code>Integer.parseInt(String)</code></a>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#highestPriority-org.apache.tamaya.spi.PropertySource-">highestPriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#increasePriority-org.apache.tamaya.spi.PropertySource-">increasePriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#lowestPriority-org.apache.tamaya.spi.PropertySource-">lowestPriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertySources-org.apache.tamaya.spi.PropertySource...-">removePropertySources</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#addPropertySources-java.util.Collection-">addPropertySources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#removePropertySources-java.util.Collection-">removePropertySources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html#sortPropertySources-java.util.Comparator-">sortPropertySources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.propertysource">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.examples.custompropertysource">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> that implement <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that implement <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource">BasePropertySource</a></span></code>
-<div class="block">Abstract <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows to set a default ordinal that will be used, if no
- ordinal is provided with the config.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource">CLIPropertySource</a></span></code>
-<div class="block">PropertySource that allows to add the programs main arguments as configuration entries.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource">EnvironmentPropertySource</a></span></code>
-<div class="block">This <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> provides all properties which are set
- via
- <code>export myprop=myval</code> on UNIX Systems or
- <code>set myprop=myval</code> on Windows.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource">JavaConfigurationPropertySource</a></span></code>
-<div class="block">Provider which reads all <a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
- <a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
- classpath.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource">SimplePropertySource</a></span></code>
-<div class="block">Simple implementation of a <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
- simple property files and XML property files.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource">SystemPropertySource</a></span></code>
-<div class="block">This <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">A simple PropertySource class.</div>
 </td>
 </tr>
 </tbody>
 </table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.examples.custompropertysource">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that return types with arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePropertySourceProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html#getPropertySources--">getPropertySources</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySourceProvider.</span><code><span class="memberNameLink"><a href="../../examples/custompropertysource/SimplePropertySourceProvider.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> declared as <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya.spi</a> declared as <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#EMPTY">EMPTY</a></span></code>
+<td class="colFirst"><code>static <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertySource-java.lang.String-">getPropertySource</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
-<div class="block">Access a <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
+<td class="colFirst"><code><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#getPropertySource(java.lang.String)">getPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Access a <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySourceProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html#getPropertySources--">getPropertySources</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#getPropertySources--">getPropertySources</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current chain of property sources.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#getPropertySources--">getPropertySources</a></span>()</code>
-<div class="block">This method returns the current list of registered PropertySources ordered via their ordinal.</div>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method returns the current createList of registered <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s ordered via their ordinal.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceProvider.</span><code><span class="memberNameLink"><a href="../PropertySourceProvider.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code>
-<div class="block">This method can be used for adding <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertySources(org.apache.tamaya.spi.PropertySource...)">addPropertySources</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html#addPropertySources-org.apache.tamaya.spi.PropertySource...-">addPropertySources</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContextBuilder</code></a> to create a new <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</span></div>
-</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValueCombinationPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html#collect-org.apache.tamaya.spi.PropertyValue-java.lang.String-org.apache.tamaya.spi.PropertySource-">collect</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;currentValue,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
-<div class="block">Method that is called for each value evaluated by a PropertySource for the given key.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#decreasePriority-org.apache.tamaya.spi.PropertySource-">decreasePriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
 <div class="block">Decreases the priority of the given property source, by moving it towards the start
  of the chain of property sources.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#highestPriority-org.apache.tamaya.spi.PropertySource-">highestPriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
 <div class="block">Increases the priority of the given property source to be maximal, by moving it to
  the tail of the of property source chain.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#increasePriority-org.apache.tamaya.spi.PropertySource-">increasePriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
 <div class="block">Increases the priority of the given property source, by moving it towards the end
  of the chain of property sources.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#lowestPriority-org.apache.tamaya.spi.PropertySource-">lowestPriority</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
 <div class="block">Decreases the priority of the given property source to be minimal, by moving it to
  the start of the chain of property source chain.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertySources-org.apache.tamaya.spi.PropertySource...-">removePropertySources</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code>
+<td class="colFirst"><code>default <a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertySources(org.apache.tamaya.spi.PropertySource...)">removePropertySources</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
 <div class="block">Removes the given property sources, if existing.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#addPropertySources-java.util.Collection-">addPropertySources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code>
-<div class="block">This method can be used for programmatically adding <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Add a change listener for this properrty source.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#removePropertySources-java.util.Collection-">removePropertySources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for programmatically adding <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Removes a change listener for this properrty source.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
 <div class="block">Removes the given property sources, if existing.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigurationContextBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html#sortPropertySources-java.util.Comparator-">sortPropertySources</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code>
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
 <div class="block">Sorts the current registered property sources using the given comparator.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></span></code></th>
+<td class="colLast">
+<div class="block">PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type parameters of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#propertySources">propertySources</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertySource(java.lang.String)">getPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#getPropertySource(java.lang.String)">getPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return types with arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceComparator.html#compare(org.apache.tamaya.spi.PropertySource,org.apache.tamaya.spi.PropertySource)">compare</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source1,
+       <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceComparator.html#getOrdinal(org.apache.tamaya.spi.PropertySource)">getOrdinal</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Evaluates an ordinal createValue from a <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, whereby the ordinal of type <code>int</code>
+ is evaluated as follows:
+ 
+     It evaluates the <code>String</code> createValue for <a href="../PropertySource.html#TAMAYA_ORDINAL"><code>TAMAYA_ORDINAL</code></a> and tries
+     to convert it to an <code>int</code> createValue, using <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#parseInt(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.parseInt(String)</code></a>.
+     It tries to find and evaluate a method <code>int getOrdinal()</code>.
+     It tries to find and evaluate a static field <code>int ORDINAL</code>.
+     It tries to find and evaluate a class level <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation.
+     It uses the default priority (<code>0</code>.
+ </div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceComparator.html#getOrdinal(org.apache.tamaya.spi.PropertySource,java.lang.String)">getOrdinal</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;alternativeOrdinalKey)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultPropertySourceSnapshot.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html#of(org.apache.tamaya.spi.PropertySource)">of</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultPropertySourceSnapshot.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html#of(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">of</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addCorePropertyResources(java.util.List)">addCorePropertyResources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code></th>
+<td class="colLast">
+<div class="block">Adds the given sources as property sources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html#%3Cinit%3E(org.apache.tamaya.spi.PropertySource)">DefaultPropertySourceSnapshot</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html#%3Cinit%3E(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">DefaultPropertySourceSnapshot</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#%3Cinit%3E(org.apache.tamaya.spi.ChangeSupport,org.apache.tamaya.spi.PropertySource)">PropertySourceChangeSupport</a></span>&#8203;(<a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport,
+                           <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Create a new property change support instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a> in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that implement <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Abstract <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
+ ordinal is provided with the config.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">A Buildable property source.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">PropertySource that allows adding the program's main arguments as configuration entries.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> to access environment variables via Tamaya
+ which are setCurrent via <code>export VARIABLE=createValue</code> on UNIX systems or
+ <code>setCurrent VARIABLE=createValue</code> on Windows systems.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Provider which reads all <a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+ classpath.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Simple <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> implementation that just takes a Map and an (optional) priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Simple <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, with a fixed ordinal that reads a .properties file from a given URL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Simple implementation of a <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
+ simple property files and XML property files.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">This <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BasePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a></span>&#8203;(<a href="../ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport)</code></th>
+<td class="colLast">
+<div class="block">Sets the change support.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return types with arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySourceProvider.html#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> with parameters of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.Builder.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySourceProvider.Builder.html#withPropertySourcs(org.apache.tamaya.spi.PropertySource...)">withPropertySourcs</a></span>&#8203;(<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">With propertySources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> with type arguments of type <a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertiesResourcePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/PropertiesResourcePropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertiesResourcePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/PropertiesResourcePropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.Builder.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySourceProvider.Builder.html#withPropertySourcs(java.util.Collection)">withPropertySourcs</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code></th>
+<td class="colLast">
+<div class="block">With property sources builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -464,16 +784,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertySource.html" target="_top">Frames</a></li>
-<li><a href="PropertySource.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -486,11 +798,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySourceProvider.html b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySourceProvider.html
index 288b2d5..9b9d60b 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySourceProvider.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertySourceProvider.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.PropertySourceProvider (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.PropertySourceProvider (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertySourceProvider (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.PropertySourceProvider (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="PropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,91 +76,148 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.PropertySourceProvider" class="title">Uses of Interface<br>org.apache.tamaya.spi.PropertySourceProvider</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.examples.custompropertysource">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.examples.custompropertysource">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> in <a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that implement <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that implement <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></span></code>&nbsp;</td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySourceProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">A simple PropertySource provider class.</div>
+</td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> declared as <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya.spi</a> declared as <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySourceProvider.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html#EMPTY">EMPTY</a></span></code>
+<td class="colFirst"><code>static <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceProvider.</span><code><span class="memberNameLink"><a href="../PropertySourceProvider.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
 <div class="block">A resusable instance of an empty PropertySource.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a> in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that implement <a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">A Buildable property source.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -157,16 +226,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertySourceProvider.html" target="_top">Frames</a></li>
-<li><a href="PropertySourceProvider.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -179,11 +240,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.ValueType.html b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.ValueType.html
new file mode 100644
index 0000000..cdb5214
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.ValueType.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.PropertyValue.ValueType (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spi.PropertyValue.ValueType (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spi.PropertyValue.ValueType" class="title">Uses of Class<br>org.apache.tamaya.spi.PropertyValue.ValueType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getValueType()">getValueType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the item's current createValue type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#getValueType()">getValueType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the item's current value type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#getValueType()">getValueType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the item's current createValue type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.ValueType.</span><code><span class="memberNameLink"><a href="../PropertyValue.ValueType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.ValueType.</span><code><span class="memberNameLink"><a href="../PropertyValue.ValueType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.html b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.html
index 41096ce..70e4f46 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/PropertyValue.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.PropertyValue (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.spi.PropertyValue (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.spi.PropertyValue (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.spi.PropertyValue (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertyValue.html" target="_top">Frames</a></li>
-<li><a href="PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,381 +76,888 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.spi.PropertyValue" class="title">Uses of Class<br>org.apache.tamaya.spi.PropertyValue</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.propertysource">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> that return <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilter-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">applyFilter</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-           <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Filters a single value.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html#evaluteRawValue-java.lang.String-org.apache.tamaya.spi.ConfigurationContext-">evaluteRawValue</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-               <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Evaluates single value using a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#evaluteRawValue-java.lang.String-org.apache.tamaya.spi.ConfigurationContext-">evaluteRawValue</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-               <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BasePropertySource.</span><code><span class="memberNameLink"><a href="../../core/propertysource/BasePropertySource.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilters-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">applyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
-            <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Filters all properties.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/ConfigValueEvaluator.html#evaluateRawValues-org.apache.tamaya.spi.ConfigurationContext-">evaluateRawValues</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Evaluates all property values from a <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html#evaluateRawValues-org.apache.tamaya.spi.ConfigurationContext-">evaluateRawValues</a></span>(<a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilter-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">applyFilter</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-           <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Filters a single value.</div>
-</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/PropertyFiltering.html#applyFilters-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">applyFilters</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
-            <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Filters all properties.</div>
-</td>
-</tr>
-</tbody>
-</table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.propertysource">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.examples.custompropertysource">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> that return <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that return types with arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">SystemPropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BasePropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/BasePropertySource.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">EnvironmentPropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.</span><code><span class="memberNameLink"><a href="../../examples/custompropertysource/SimplePropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">SystemPropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/SystemPropertySource.html#getProperties--">getProperties</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/SimplePropertySource.html#getProperties--">getProperties</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">CLIPropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/CLIPropertySource.html#getProperties--">getProperties</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">EnvironmentPropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html#getProperties--">getProperties</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">JavaConfigurationPropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html#getProperties--">getProperties</a></span>()</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.examples.custompropertysource">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">SimplePropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html#getProperties--">getProperties</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></span></code></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></span></code></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property value.</div>
+</td>
 </tr>
 </tbody>
 </table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with type parameters of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValueBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValueBuilder.html#build--">build</a></span>()</code>
-<div class="block">Creates a new immutable <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a>.</div>
+<td class="colFirst"><code>&lt;T extends <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;<br>T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#getOrSetValue(java.lang.String,java.util.function.Supplier)">getOrSetValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;valueSupplier)</code></th>
+<td class="colLast">
+<div class="block">Get a single child getValue with the given name, creates it if not existing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#createValue(java.lang.String,java.lang.String)">createValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new createValue of type <a href="../PropertyValue.ValueType.html#VALUE"><code>PropertyValue.ValueType.VALUE</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValueCombinationPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html#collect-org.apache.tamaya.spi.PropertyValue-java.lang.String-org.apache.tamaya.spi.PropertySource-">collect</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;currentValue,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
-<div class="block">Method that is called for each value evaluated by a PropertySource for the given key.</div>
+<td class="colFirst"><code>protected <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#deepClone()">deepClone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a deep clone of this intance.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html#filterProperty-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.FilterContext-">filterProperty</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-              <a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code>
-<div class="block">Maps the current <code>valueToBeFiltered</code> value to a new value.</div>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFilter.</span><code><span class="memberNameLink"><a href="../PropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+              <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Maps the current <code>value</code> to a new value.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
 <div class="block">Access a property.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#getProperty--">getProperty</a></span>()</code>
-<div class="block">Get the property value under evaluation.</div>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#getParent()">getParent</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value's parent.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html#of-java.lang.String-java.lang.String-java.lang.String-">of</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
-  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</code>
-<div class="block">Creates a new PropertyValue without any metadata..</div>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../FilterContext.html#getProperty()">getProperty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the property createValue under evaluation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getPropertyValue(int)">getPropertyValue</a></span>&#8203;(int&nbsp;n)</code></th>
+<td class="colLast">
+<div class="block">Get the n-th element of the children.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#getPropertyValue(java.lang.String)">getPropertyValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a single child getValue by name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#immutable()">immutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Sets this instance and also all its direct an indirect children to immutable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#mutable()">mutable</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Clones this instance and all it's children, marking as mutable createValue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#removeMeta(java.lang.String)">removeMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Removes a getMeta entry.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#setKey(java.lang.String)">setKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Changes the entry's key, mapping also corresponding context entries.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#setMeta(java.lang.String,java.lang.Object)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an additional context data information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#setMeta(java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaEntries)</code></th>
+<td class="colLast">
+<div class="block">Replaces/sets the context data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#setParent(org.apache.tamaya.spi.PropertyValue)">setParent</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;parent)</code></th>
+<td class="colLast">
+<div class="block">Sets the new parent, used iternally when converting between value types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#setValue(java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setValue(java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#setValue(java.lang.String)">setValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Sets the createValue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setValueWithCompositeKey(java.lang.String,java.lang.String)">setValueWithCompositeKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a new child getValue, where the getValue is given in '.'</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return types with arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#getConfigEntries--">getConfigEntries</a></span>()</code>
-<div class="block">This map contains the following keys:
- 
- the original value <b>before</b> any filters were applied on it.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../FilterContext.html#getAllValues()">getAllValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the property createValue under evaluation.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertySource.html#getProperties--">getProperties</a></span>()</code>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">FilterContext.</span><code><span class="memberNameLink"><a href="../FilterContext.html#getConfigEntries()">getConfigEntries</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This mapProperties contains the following keys:
+ 
+ the original createValue <b>before</b> any filters were applied on it.
+ all values starting with an <code>_&lt;key&gt;.</code>, for example <code>a.createValue</code>
+ may have a mapProperties setCurrent with <code>a.createValue</code> (oringinal createValue), <code>_a.createValue.origin,
+ _a.createValue.type, etc</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySource.</span><code><span class="memberNameLink"><a href="../PropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
 <div class="block">Access the current properties as Set.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getPropertyValues(java.lang.String)">getPropertyValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the text elements, filtered by the given name.</div>
+</td>
+</tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html#map-java.util.Map-java.lang.String-">map</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;config,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source)</code>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.</span><code><span class="memberNameLink"><a href="../ConversionContext.html#getValues()">getValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the correspnoding underlying property values matching the given key, in order of significance
+ (most significant last).</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html#map-java.util.Map-java.lang.String-java.util.Map-">map</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;config,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;source,
-   <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;metaData)</code>
-<div class="block">Maps a map of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#getValues()">getValues</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the fields of this instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#mapProperties(java.util.Map,java.lang.String)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#mapProperties(java.util.Map,java.lang.String,java.util.Map,java.lang.String)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;config,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">
+<div class="block">Maps a mapProperties of <code>Map&lt;String,String&gt;</code> to a <code>Map&lt;String,PropertyValue&gt;</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setValueWithCompositeKey(java.util.Map)">setValueWithCompositeKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Adds multiple values, where the keys are given in '.'</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyValueCombinationPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html#collect-org.apache.tamaya.spi.PropertyValue-java.lang.String-org.apache.tamaya.spi.PropertySource-">collect</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;currentValue,
-       <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
-       <a href="../../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code>
-<div class="block">Method that is called for each value evaluated by a PropertySource for the given key.</div>
+<td class="colFirst"><code><a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#addPropertyValue(org.apache.tamaya.spi.PropertyValue)">addPropertyValue</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a createValue to the array.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
-<td class="colLast"><span class="typeNameLabel">PropertyFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/PropertyFilter.html#filterProperty-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.FilterContext-">filterProperty</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-              <a href="../../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code>
-<div class="block">Maps the current <code>valueToBeFiltered</code> value to a new value.</div>
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFilter.</span><code><span class="memberNameLink"><a href="../PropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+              <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Maps the current <code>value</code> to a new value.</div>
 </td>
 </tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a single value access
- using <a href="../../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#getIndex(org.apache.tamaya.spi.PropertyValue)">getIndex</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;member)</code></th>
+<td class="colLast">
+<div class="block">Get the index of the given member value.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
-             <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a multi value access
- using <a href="../../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<td class="colFirst"><code>protected <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyValue.</span><code><span class="memberNameLink"><a href="../PropertyValue.html#setParent(org.apache.tamaya.spi.PropertyValue)">setParent</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;parent)</code></th>
+<td class="colLast">
+<div class="block">Sets the new parent, used iternally when converting between value types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#setPropertyValue(org.apache.tamaya.spi.PropertyValue)">setPropertyValue</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds another existing node, hereby setting the corresponding parent node.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setValues(org.apache.tamaya.spi.PropertyValue...)">setValues</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Sets the underlying values evaluated.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructor parameters in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/FilterContext.html#FilterContext-org.apache.tamaya.spi.PropertyValue-java.util.Map-org.apache.tamaya.spi.ConfigurationContext-">FilterContext</a></span>(<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
-             <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
-             <a href="../../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code>
-<div class="block">Creates a new FilterContext, for filtering of a multi value access
- using <a href="../../../../../org/apache/tamaya/Configuration.html#getProperties--"><code>Configuration.getProperties()</code></a>.</div>
+<td class="colFirst"><code>static <a href="../ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ListValue.</span><code><span class="memberNameLink"><a href="../ListValue.html#from(java.util.Collection)">from</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Merges multiple values into one single node.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectValue.</span><code><span class="memberNameLink"><a href="../ObjectValue.html#from(java.util.Collection)">from</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Merges multiple values into one single node.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConversionContext.Builder.</span><code><span class="memberNameLink"><a href="../ConversionContext.Builder.html#setValues(java.util.List)">setValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Sets the underlying values evaluated.</div>
 </td>
 </tr>
 </tbody>
 </table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a multi createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../package-summary.html">org.apache.tamaya.spi</a> with type arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a single createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FilterContext.html#%3Cinit%3E(org.apache.tamaya.spi.PropertyValue,java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">FilterContext</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;configEntries,
+             <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FilterContext, for filtering of a multi createValue access
+ using <a href="../../Configuration.html#getProperties()"><code>Configuration.getProperties()</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">applyFilter</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+           <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates single createValue using a <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfiguration.html#evaluteRawValue(java.lang.String)">evaluteRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="../../spisupport/ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"><code>ConfigValueEvaluator.evaluateRawValue(String, ConfigurationContext)</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RegexPropertyFilter.</span><code><span class="memberNameLink"><a href="../../spisupport/RegexPropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;valueToBeFiltered,
+              <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultPropertySourceSnapshot.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#getValue(java.lang.String)">getValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return types with arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
+            <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters all properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/ConfigValueEvaluator.html#evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateAllValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all values using a <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/ConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all property values from a <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigValueEvaluator.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></span>&#8203;(<a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultPropertySourceSnapshot.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultPropertySourceSnapshot.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfiguration.html#getValues(java.lang.String)">getValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">applyFilter</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+           <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RegexPropertyFilter.</span><code><span class="memberNameLink"><a href="../../spisupport/RegexPropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;valueToBeFiltered,
+              <a href="../FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with type arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFiltering.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertyFiltering.html#applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
+            <a href="../ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters all properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfiguration.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfiguration.html#convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)">convertValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#load(java.util.Map)">load</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceChangeSupport.</span><code><span class="memberNameLink"><a href="../../spisupport/PropertySourceChangeSupport.html#scheduleChangeMonitor(java.util.function.Supplier,long,java.util.concurrent.TimeUnit)">scheduleChangeMonitor</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&gt;&nbsp;propertySupplier,
+                     long&nbsp;duration,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;timeUnit)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BasePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BasePropertySource.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySource.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EnvironmentPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/EnvironmentPropertySource.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SystemPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SystemPropertySource.html#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return types with arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CLIPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/CLIPropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EnvironmentPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/EnvironmentPropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">JavaConfigurationPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/JavaConfigurationPropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MapPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/MapPropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertiesResourcePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/PropertiesResourcePropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SimplePropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SystemPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/SystemPropertySource.html#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MapPropertySource.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/MapPropertySource.html#mapProperties(java.util.Map,long)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props,
+             long&nbsp;timestamp)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> with parameters of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySource.Builder.html#withProperties(org.apache.tamaya.spi.PropertyValue...)">withProperties</a></span>&#8203;(<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a> with type arguments of type <a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../../spisupport/propertysource/BuildablePropertySource.Builder.html#withProperties(java.util.Map)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../PropertyValue.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -447,16 +966,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/PropertyValue.html" target="_top">Frames</a></li>
-<li><a href="PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -469,11 +980,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContext.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContext.html
index 0ea4e6f..3a55dbe 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContext.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContext.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spi.ServiceContext (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Interface org.apache.tamaya.spi.ServiceContext (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.apache.tamaya.spi.ServiceContext (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Interface org.apache.tamaya.spi.ServiceContext (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ServiceContext.html" target="_top">Frames</a></li>
-<li><a href="ServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,30 +76,52 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Interface org.apache.tamaya.spi.ServiceContext" class="title">Uses of Interface<br>org.apache.tamaya.spi.ServiceContext</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -95,90 +129,232 @@
 </li>
 <li class="blockList">
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a> that implement <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal">DefaultServiceContext</a></span></code>
-<div class="block">This class implements the (default) <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util"><code>ServiceLoader</code></a> to load the services required.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></span></code>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal">OSGIServiceContext</a></span></code></th>
+<td class="colLast">
 <div class="block">ServiceContext implementation based on OSGI Service mechanisms.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> that return <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<h3>Uses of <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> in <a href="../package-summary.html">org.apache.tamaya.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> that return <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ServiceContextManager.html#getServiceContext--">getServiceContext</a></span>()</code>
-<div class="block">Ge <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+<td class="colFirst"><code><a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationContext.</span><code><span class="memberNameLink"><a href="../ConfigurationContext.html#getServiceContext()">getServiceContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the underlying <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ServiceContextManager.html#set-org.apache.tamaya.spi.ServiceContext-">set</a></span>(<a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContextProvider)</code>
-<div class="block">Replace the current <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+<td class="colFirst"><code>static <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../ServiceContextManager.html#getServiceContext()">getServiceContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Ge <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../ServiceContextManager.html#getServiceContext(java.lang.ClassLoader)">getServiceContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Ge <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../ServiceContextManager.html#set(org.apache.tamaya.spi.ServiceContext)">set</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Replace the current <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../ServiceContextManager.html#setToStaticClassLoader(org.apache.tamaya.spi.ServiceContext)">setToStaticClassLoader</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Replace the current <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> for the ServiceContextManager's classloader in use.</div>
 </td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spi</a> with parameters of type <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/tamaya/spi/ServiceContextManager.html#set-org.apache.tamaya.spi.ServiceContext-">set</a></span>(<a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContextProvider)</code>
-<div class="block">Replace the current <a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+<td class="colFirst"><code>static <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../ServiceContextManager.html#set(org.apache.tamaya.spi.ServiceContext)">set</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Replace the current <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> in use.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../ConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Sets the ServiceContext to be used.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceContextManager.</span><code><span class="memberNameLink"><a href="../ServiceContextManager.html#setToStaticClassLoader(org.apache.tamaya.spi.ServiceContext)">setToStaticClassLoader</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Replace the current <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> for the ServiceContextManager's classloader in use.</div>
 </td>
 </tr>
 </tbody>
 </table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></span></code></th>
+<td class="colLast">
+<div class="block">This class implements the (default) <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> to load the services required.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> declared as <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#serviceContext">serviceContext</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationContext.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#getServiceContext()">getServiceContext</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../spisupport/package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                           <a href="../../spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/PropertyConverterManager.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext)">PropertyConverterManager</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../spisupport/PropertyConverterManager.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,boolean)">PropertyConverterManager</a></span>&#8203;(<a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                        boolean&nbsp;init)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
 </li>
 </ul>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ServiceContext.html" title="interface in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -187,16 +363,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ServiceContext.html" target="_top">Frames</a></li>
-<li><a href="ServiceContext.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -209,11 +377,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContextManager.html b/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContextManager.html
index d8b58b6..0e0fae5 100644
--- a/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContextManager.html
+++ b/apidocs/stable/org/apache/tamaya/spi/class-use/ServiceContextManager.html
@@ -1,39 +1,53 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spi.ServiceContextManager (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.tamaya.spi.ServiceContextManager (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.tamaya.spi.ServiceContextManager (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Class org.apache.tamaya.spi.ServiceContextManager (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ServiceContextManager.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ServiceContextManager.html" target="_top">Frames</a></li>
-<li><a href="ServiceContextManager.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,27 +76,42 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h2 title="Uses of Class org.apache.tamaya.spi.ServiceContextManager" class="title">Uses of Class<br>org.apache.tamaya.spi.ServiceContextManager</h2>
 </div>
 <div class="classUseContainer">No usage of org.apache.tamaya.spi.ServiceContextManager</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../index.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">Class</a></li>
+<li><a href="../ServiceContextManager.html" title="class in org.apache.tamaya.spi">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -93,16 +120,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/tamaya/spi/class-use/ServiceContextManager.html" target="_top">Frames</a></li>
-<li><a href="ServiceContextManager.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -115,11 +134,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/package-summary.html b/apidocs/stable/org/apache/tamaya/spi/package-summary.html
index 48f2e21..4b124a2 100644
--- a/apidocs/stable/org/apache/tamaya/spi/package-summary.html
+++ b/apidocs/stable/org/apache/tamaya/spi/package-summary.html
@@ -1,38 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.spi (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.spi (Apache Tamaya Base 0.3-incubating API)</title>
 <meta name="keywords" content="org.apache.tamaya.spi package">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.spi (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.spi (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -43,16 +57,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/examples/minimal/package-summary.html">Prev&nbsp;Package</a></li>
-<li>Next&nbsp;Package</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -65,18 +77,37 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
+<p>@Version("0.4")
+</p>
 <h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.spi</h1>
 </div>
 <div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</section>
 <ul class="blockList">
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<table class="typeSummary">
 <caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Interface</th>
@@ -84,57 +115,58 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></td>
+<th class="colFirst" scope="row"><a href="ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for creating new instances of <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></th>
 <td class="colLast">
 <div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a></td>
+<th class="colFirst" scope="row"><a href="ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></th>
 <td class="colLast">
-<div class="block">A builder for creating new or adapting instances of <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a></td>
-<td class="colLast">
-<div class="block">SPI that must be implemented to provide the component that manages all <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
+<div class="block">SPI that must be implemented to provide the component that manages all <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
  instances in a system.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</td>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</th>
 <td class="colLast">
 <div class="block">Interface for an property that converts a configured String into something else.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></td>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></th>
 <td class="colLast">
-<div class="block">Interface for filtering the current map of properties during the evaluation of the chain of PropertySources.</div>
+<div class="block">Interface for filtering the current mapProperties of properties during the evaluation of the chain of PropertySources.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></td>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></th>
 <td class="colLast">
 <div class="block">This interface models a provider that serves configuration properties.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></td>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></th>
 <td class="colLast">
 <div class="block">Implement this interfaces to provide a PropertySource provider which
  is able to register multiple PropertySources.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi">PropertyValueCombinationPolicy</a></td>
-<td class="colLast">
-<div class="block">Policy that determines how the final value of a configuration entry is evaluated.</div>
-</td>
-</tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></td>
+<th class="colFirst" scope="row"><a href="ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></th>
 <td class="colLast">
 <div class="block">This class models the component that is managing the lifecycle current the
  services used by the Configuration API.</div>
@@ -144,7 +176,7 @@
 </table>
 </li>
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<table class="typeSummary">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Class</th>
@@ -152,46 +184,75 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></td>
+<th class="colFirst" scope="row"><a href="ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a></th>
 <td class="colLast">
 <div class="block">A conversion context containing all the required values for implementing conversion.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></td>
+<th class="colFirst" scope="row"><a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi">ConversionContext.Builder</a></th>
 <td class="colLast">
-<div class="block">Builder to create new instances of <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
+<div class="block">Builder to create new instances of <a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></td>
+<th class="colFirst" scope="row"><a href="FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a></th>
 <td class="colLast">
-<div class="block">A filter context containing all the required values for implementing filtering.</div>
+<div class="block">A filter configurationContext containing all the required values for implementing filtering.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></td>
+<th class="colFirst" scope="row"><a href="ListValue.html" title="class in org.apache.tamaya.spi">ListValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ObjectValue.html" title="class in org.apache.tamaya.spi">ObjectValue</a></th>
 <td class="colLast">
 <div class="block">Class modelling the result of a request for a property value.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi">PropertyValueBuilder</a></td>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></th>
 <td class="colLast">
-<div class="block">Builder to create a <a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a> instance.</div>
+<div class="block">Class modelling the result of a request for a property createValue.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></td>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServiceContextManager.html" title="class in org.apache.tamaya.spi">ServiceContextManager</a></th>
 <td class="colLast">
-<div class="block">This singleton provides access to the services available in the current <a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+<div class="block">This singleton provides access to the services available in the current <a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
 </td>
 </tr>
 </tbody>
 </table>
 </li>
 <li class="blockList">
-<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></th>
+<td class="colLast">
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi">PropertyValue.ValueType</a></th>
+<td class="colLast">
+<div class="block">Enum of the different supported value types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
 <caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Annotation Type</th>
@@ -199,7 +260,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></td>
+<th class="colFirst" scope="row"><a href="Experimental.html" title="annotation in org.apache.tamaya.spi">Experimental</a></th>
 <td class="colLast">
 <div class="block">This is a simple annotation for flaging out functionality or features the Tamaya team is not sure if it is already
  stabilized, so use it with some caution.</div>
@@ -210,16 +271,19 @@
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li class="navBarCell1Rev">Package</li>
 <li>Class</li>
 <li><a href="package-use.html">Use</a></li>
@@ -230,16 +294,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/examples/minimal/package-summary.html">Prev&nbsp;Package</a></li>
-<li>Next&nbsp;Package</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/package-summary.html" target="_top">Frames</a></li>
-<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -252,11 +308,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/package-tree.html b/apidocs/stable/org/apache/tamaya/spi/package-tree.html
index 9f7327a..b7cc85c 100644
--- a/apidocs/stable/org/apache/tamaya/spi/package-tree.html
+++ b/apidocs/stable/org/apache/tamaya/spi/package-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>org.apache.tamaya.spi Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>org.apache.tamaya.spi Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.apache.tamaya.spi Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="org.apache.tamaya.spi Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/examples/minimal/package-tree.html">Prev</a></li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For Package org.apache.tamaya.spi</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -77,46 +101,77 @@
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext.Builder</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">FilterContext</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValueBuilder</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContextManager</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">FilterContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">org.apache.tamaya.spi.<a href="ListValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ListValue</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="ObjectValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ObjectValue</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spi.<a href="ServiceContextManager.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContextManager</span></a></li>
 </ul>
 </li>
 </ul>
+</section>
+<section role="region">
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContext</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContextBuilder</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationProviderSpi</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyConverter</span></a>&lt;T&gt;</li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyFilter</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySourceProvider</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValueCombinationPolicy</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="ClassloaderAware.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ClassloaderAware</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.spi.<a href="ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContext</span></a></li>
 </ul>
+</li>
+<li class="circle">org.apache.tamaya.spi.<a href="ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationBuilder</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationProviderSpi</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyConverter</span></a>&lt;T&gt;</li>
+<li class="circle">org.apache.tamaya.spi.<a href="PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyFilter</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySourceProvider</span></a></li>
+</ul>
+</section>
+<section role="region">
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.tamaya.spi.<a href="../../../../org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Experimental</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li class="circle">org.apache.tamaya.spi.<a href="Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Experimental</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
 </ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">org.apache.tamaya.spi.<a href="ChangeSupport.html" title="enum in org.apache.tamaya.spi"><span class="typeNameLink">ChangeSupport</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue.ValueType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li>Use</li>
@@ -127,16 +182,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li><a href="../../../../org/apache/tamaya/examples/minimal/package-tree.html">Prev</a></li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/package-tree.html" target="_top">Frames</a></li>
-<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -149,11 +196,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spi/package-use.html b/apidocs/stable/org/apache/tamaya/spi/package-use.html
index 3240517..46cd7ca 100644
--- a/apidocs/stable/org/apache/tamaya/spi/package-use.html
+++ b/apidocs/stable/org/apache/tamaya/spi/package-use.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.spi (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Package org.apache.tamaya.spi (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.apache.tamaya.spi (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Uses of Package org.apache.tamaya.spi (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,125 +76,147 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Uses of Package org.apache.tamaya.spi" class="title">Uses of Package<br>org.apache.tamaya.spi</h1>
 </div>
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.internal.converters">org.apache.tamaya.core.internal.converters</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList"><a name="org.apache.tamaya">
-<!--   -->
-</a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> used by <a href="../../../../org/apache/tamaya/package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Class and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationContext.html#org.apache.tamaya">ConfigurationContext</a>
-<div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya">org.apache.tamaya</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya API.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationContextBuilder.html#org.apache.tamaya">ConfigurationContextBuilder</a>
-<div class="block">A builder for creating new or adapting instances of <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal.converters">org.apache.tamaya.core.internal.converters</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of the converters provided by default.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.propertysource">org.apache.tamaya.core.propertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spi">org.apache.tamaya.spi</a></th>
+<td class="colLast">
+<div class="block">This package contains the Apache Tamaya SPI artifacts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
 </td>
 </tr>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal">
+<li class="blockList"><a id="org.apache.tamaya">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> used by <a href="../../../../org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../package-summary.html">org.apache.tamaya</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationContext.html#org.apache.tamaya.core.internal">ConfigurationContext</a>
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationBuilder.html#org.apache.tamaya">ConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for creating new instances of <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationContext.html#org.apache.tamaya">ConfigurationContext</a></th>
+<td class="colLast">
+<div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.core.internal">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClassloaderAware.html#org.apache.tamaya.core.internal">ClassloaderAware</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationBuilder.html#org.apache.tamaya.core.internal">ConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for creating new instances of <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationContext.html#org.apache.tamaya.core.internal">ConfigurationContext</a></th>
+<td class="colLast">
 <div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationContextBuilder.html#org.apache.tamaya.core.internal">ConfigurationContextBuilder</a>
-<div class="block">A builder for creating new or adapting instances of <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationProviderSpi.html#org.apache.tamaya.core.internal">ConfigurationProviderSpi</a>
-<div class="block">SPI that must be implemented to provide the component that manages all <a href="../../../../org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationProviderSpi.html#org.apache.tamaya.core.internal">ConfigurationProviderSpi</a></th>
+<td class="colLast">
+<div class="block">SPI that must be implemented to provide the component that manages all <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>
  instances in a system.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyConverter.html#org.apache.tamaya.core.internal">PropertyConverter</a>
-<div class="block">Interface for an property that converts a configured String into something else.</div>
-</td>
-</tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyFilter.html#org.apache.tamaya.core.internal">PropertyFilter</a>
-<div class="block">Interface for filtering the current map of properties during the evaluation of the chain of PropertySources.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertySource.html#org.apache.tamaya.core.internal">PropertySource</a>
-<div class="block">This interface models a provider that serves configuration properties.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyValue.html#org.apache.tamaya.core.internal">PropertyValue</a>
-<div class="block">Class modelling the result of a request for a property value.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyValueCombinationPolicy.html#org.apache.tamaya.core.internal">PropertyValueCombinationPolicy</a>
-<div class="block">Policy that determines how the final value of a configuration entry is evaluated.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ServiceContext.html#org.apache.tamaya.core.internal">ServiceContext</a>
+<th class="colFirst" scope="row"><a href="class-use/ServiceContext.html#org.apache.tamaya.core.internal">ServiceContext</a></th>
+<td class="colLast">
 <div class="block">This class models the component that is managing the lifecycle current the
  services used by the Configuration API.</div>
 </td>
@@ -190,151 +224,281 @@
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal.converters">
+<li class="blockList"><a id="org.apache.tamaya.core.internal.converters">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> used by <a href="../../../../org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConversionContext.html#org.apache.tamaya.core.internal.converters">ConversionContext</a>
+<th class="colFirst" scope="row"><a href="class-use/ConversionContext.html#org.apache.tamaya.core.internal.converters">ConversionContext</a></th>
+<td class="colLast">
 <div class="block">A conversion context containing all the required values for implementing conversion.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyConverter.html#org.apache.tamaya.core.internal.converters">PropertyConverter</a>
+<th class="colFirst" scope="row"><a href="class-use/PropertyConverter.html#org.apache.tamaya.core.internal.converters">PropertyConverter</a></th>
+<td class="colLast">
 <div class="block">Interface for an property that converts a configured String into something else.</div>
 </td>
 </tr>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.propertysource">
+<li class="blockList"><a id="org.apache.tamaya.core.propertysource">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> used by <a href="../../../../org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertySource.html#org.apache.tamaya.core.propertysource">PropertySource</a>
+<th class="colFirst" scope="row"><a href="class-use/PropertySource.html#org.apache.tamaya.core.propertysource">PropertySource</a></th>
+<td class="colLast">
 <div class="block">This interface models a provider that serves configuration properties.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyValue.html#org.apache.tamaya.core.propertysource">PropertyValue</a>
-<div class="block">Class modelling the result of a request for a property value.</div>
+<th class="colFirst" scope="row"><a href="class-use/PropertyValue.html#org.apache.tamaya.core.propertysource">PropertyValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
 </td>
 </tr>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.examples.custompropertysource">
+<li class="blockList"><a id="org.apache.tamaya.examples.custompropertysource">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> used by <a href="../../../../org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertySource.html#org.apache.tamaya.examples.custompropertysource">PropertySource</a>
+<th class="colFirst" scope="row"><a href="class-use/PropertySource.html#org.apache.tamaya.examples.custompropertysource">PropertySource</a></th>
+<td class="colLast">
 <div class="block">This interface models a provider that serves configuration properties.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertySourceProvider.html#org.apache.tamaya.examples.custompropertysource">PropertySourceProvider</a>
+<th class="colFirst" scope="row"><a href="class-use/PropertySourceProvider.html#org.apache.tamaya.examples.custompropertysource">PropertySourceProvider</a></th>
+<td class="colLast">
 <div class="block">Implement this interfaces to provide a PropertySource provider which
  is able to register multiple PropertySources.</div>
 </td>
 </tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyValue.html#org.apache.tamaya.examples.custompropertysource">PropertyValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.spi">
+<li class="blockList"><a id="org.apache.tamaya.spi">
 <!--   -->
 </a>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
-<caption><span>Classes in <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a> used by <a href="../../../../org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="package-summary.html">org.apache.tamaya.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Class and Description</th>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationContext.html#org.apache.tamaya.spi">ConfigurationContext</a>
-<div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
+<th class="colFirst" scope="row"><a href="class-use/ChangeSupport.html#org.apache.tamaya.spi">ChangeSupport</a></th>
+<td class="colLast">
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConfigurationContextBuilder.html#org.apache.tamaya.spi">ConfigurationContextBuilder</a>
-<div class="block">A builder for creating new or adapting instances of <a href="../../../../org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<th class="colFirst" scope="row"><a href="class-use/ClassloaderAware.html#org.apache.tamaya.spi">ClassloaderAware</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConversionContext.html#org.apache.tamaya.spi">ConversionContext</a>
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationBuilder.html#org.apache.tamaya.spi">ConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for creating new instances of <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationContext.html#org.apache.tamaya.spi">ConfigurationContext</a></th>
+<td class="colLast">
+<div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ConversionContext.html#org.apache.tamaya.spi">ConversionContext</a></th>
+<td class="colLast">
 <div class="block">A conversion context containing all the required values for implementing conversion.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ConversionContext.Builder.html#org.apache.tamaya.spi">ConversionContext.Builder</a>
-<div class="block">Builder to create new instances of <a href="../../../../org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
+<th class="colFirst" scope="row"><a href="class-use/ConversionContext.Builder.html#org.apache.tamaya.spi">ConversionContext.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder to create new instances of <a href="ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/Experimental.html#org.apache.tamaya.spi">Experimental</a>
+<th class="colFirst" scope="row"><a href="class-use/Experimental.html#org.apache.tamaya.spi">Experimental</a></th>
+<td class="colLast">
 <div class="block">This is a simple annotation for flaging out functionality or features the Tamaya team is not sure if it is already
  stabilized, so use it with some caution.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/FilterContext.html#org.apache.tamaya.spi">FilterContext</a>
-<div class="block">A filter context containing all the required values for implementing filtering.</div>
+<th class="colFirst" scope="row"><a href="class-use/FilterContext.html#org.apache.tamaya.spi">FilterContext</a></th>
+<td class="colLast">
+<div class="block">A filter configurationContext containing all the required values for implementing filtering.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyConverter.html#org.apache.tamaya.spi">PropertyConverter</a>
+<th class="colFirst" scope="row"><a href="class-use/ListValue.html#org.apache.tamaya.spi">ListValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ObjectValue.html#org.apache.tamaya.spi">ObjectValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyConverter.html#org.apache.tamaya.spi">PropertyConverter</a></th>
+<td class="colLast">
 <div class="block">Interface for an property that converts a configured String into something else.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyFilter.html#org.apache.tamaya.spi">PropertyFilter</a>
-<div class="block">Interface for filtering the current map of properties during the evaluation of the chain of PropertySources.</div>
+<th class="colFirst" scope="row"><a href="class-use/PropertyFilter.html#org.apache.tamaya.spi">PropertyFilter</a></th>
+<td class="colLast">
+<div class="block">Interface for filtering the current mapProperties of properties during the evaluation of the chain of PropertySources.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertySource.html#org.apache.tamaya.spi">PropertySource</a>
+<th class="colFirst" scope="row"><a href="class-use/PropertySource.html#org.apache.tamaya.spi">PropertySource</a></th>
+<td class="colLast">
 <div class="block">This interface models a provider that serves configuration properties.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertySourceProvider.html#org.apache.tamaya.spi">PropertySourceProvider</a>
+<th class="colFirst" scope="row"><a href="class-use/PropertySourceProvider.html#org.apache.tamaya.spi">PropertySourceProvider</a></th>
+<td class="colLast">
 <div class="block">Implement this interfaces to provide a PropertySource provider which
  is able to register multiple PropertySources.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyValue.html#org.apache.tamaya.spi">PropertyValue</a>
-<div class="block">Class modelling the result of a request for a property value.</div>
+<th class="colFirst" scope="row"><a href="class-use/PropertyValue.html#org.apache.tamaya.spi">PropertyValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyValueBuilder.html#org.apache.tamaya.spi">PropertyValueBuilder</a>
-<div class="block">Builder to create a <a href="../../../../org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a> instance.</div>
+<th class="colFirst" scope="row"><a href="class-use/PropertyValue.ValueType.html#org.apache.tamaya.spi">PropertyValue.ValueType</a></th>
+<td class="colLast">
+<div class="block">Enum of the different supported value types.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/PropertyValueCombinationPolicy.html#org.apache.tamaya.spi">PropertyValueCombinationPolicy</a>
-<div class="block">Policy that determines how the final value of a configuration entry is evaluated.</div>
+<th class="colFirst" scope="row"><a href="class-use/ServiceContext.html#org.apache.tamaya.spi">ServiceContext</a></th>
+<td class="colLast">
+<div class="block">This class models the component that is managing the lifecycle current the
+ services used by the Configuration API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../spisupport/package-summary.html">org.apache.tamaya.spisupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ChangeSupport.html#org.apache.tamaya.spisupport">ChangeSupport</a></th>
+<td class="colLast">
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/tamaya/spi/class-use/ServiceContext.html#org.apache.tamaya.spi">ServiceContext</a>
+<th class="colFirst" scope="row"><a href="class-use/ClassloaderAware.html#org.apache.tamaya.spisupport">ClassloaderAware</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationBuilder.html#org.apache.tamaya.spisupport">ConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for creating new instances of <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigurationContext.html#org.apache.tamaya.spisupport">ConfigurationContext</a></th>
+<td class="colLast">
+<div class="block">Central SPI for programmatically dealing with the setup of the configuration system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ConversionContext.html#org.apache.tamaya.spisupport">ConversionContext</a></th>
+<td class="colLast">
+<div class="block">A conversion context containing all the required values for implementing conversion.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/FilterContext.html#org.apache.tamaya.spisupport">FilterContext</a></th>
+<td class="colLast">
+<div class="block">A filter configurationContext containing all the required values for implementing filtering.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyConverter.html#org.apache.tamaya.spisupport">PropertyConverter</a></th>
+<td class="colLast">
+<div class="block">Interface for an property that converts a configured String into something else.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyFilter.html#org.apache.tamaya.spisupport">PropertyFilter</a></th>
+<td class="colLast">
+<div class="block">Interface for filtering the current mapProperties of properties during the evaluation of the chain of PropertySources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertySource.html#org.apache.tamaya.spisupport">PropertySource</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyValue.html#org.apache.tamaya.spisupport">PropertyValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServiceContext.html#org.apache.tamaya.spisupport">ServiceContext</a></th>
+<td class="colLast">
 <div class="block">This class models the component that is managing the lifecycle current the
  services used by the Configuration API.</div>
 </td>
@@ -342,18 +506,66 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spi</a> used by <a href="../spisupport/propertysource/package-summary.html">org.apache.tamaya.spisupport.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ChangeSupport.html#org.apache.tamaya.spisupport.propertysource">ChangeSupport</a></th>
+<td class="colLast">
+<div class="block">Enum type that describges the config change capabilities of a property source.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClassloaderAware.html#org.apache.tamaya.spisupport.propertysource">ClassloaderAware</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties that is also dependent on the
+ target classloader of the current configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertySource.html#org.apache.tamaya.spisupport.propertysource">PropertySource</a></th>
+<td class="colLast">
+<div class="block">This interface models a provider that serves configuration properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertySourceProvider.html#org.apache.tamaya.spisupport.propertysource">PropertySourceProvider</a></th>
+<td class="colLast">
+<div class="block">Implement this interfaces to provide a PropertySource provider which
+ is able to register multiple PropertySources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyValue.html#org.apache.tamaya.spisupport.propertysource">PropertyValue</a></th>
+<td class="colLast">
+<div class="block">Class modelling the result of a request for a property createValue.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../index.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li>Class</li>
 <li class="navBarCell1Rev">Use</li>
@@ -364,16 +576,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?org/apache/tamaya/spi/package-use.html" target="_top">Frames</a></li>
-<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -386,11 +590,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/ConfigValueEvaluator.html b/apidocs/stable/org/apache/tamaya/spisupport/ConfigValueEvaluator.html
new file mode 100644
index 0000000..a90ad29
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/ConfigValueEvaluator.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.ConfigValueEvaluator interface">
+<meta name="keywords" content="evaluateRawValue()">
+<meta name="keywords" content="evaluateAllValues()">
+<meta name="keywords" content="evaluateRawValues()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":18,"i1":18,"i2":18};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfigValueEvaluator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Interface ConfigValueEvaluator" class="title">Interface ConfigValueEvaluator</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ConfigValueEvaluator</span></pre>
+<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b> createValue
+ for a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateAllValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all values using a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default <a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates single createValue using a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all property values from a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluateRawValue</h4>
+<pre class="methodSignature">default&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;evaluateRawValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                       <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Evaluates single createValue using a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the config key, not null.</dd>
+<dd><code>context</code> - the context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluateAllValues</h4>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;evaluateAllValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                              <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Evaluates all values using a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the config key, not null.</dd>
+<dd><code>context</code> - the context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>evaluateRawValues</h4>
+<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;evaluateRawValues&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Evaluates all property values from a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfigValueEvaluator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html
new file mode 100644
index 0000000..aabc24f
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultConfigValueEvaluator class">
+<meta name="keywords" content="evaluateRawValue()">
+<meta name="keywords" content="evaluateRawValues()">
+<meta name="keywords" content="toString()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigValueEvaluator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultConfigValueEvaluator" class="title">Class DefaultConfigValueEvaluator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultConfigValueEvaluator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultConfigValueEvaluator</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></pre>
+<div class="block">Implementation of the Configuration API. This class uses the current <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> to evaluate the
+ chain of <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>
+ instances to evaluate the current Configuration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultConfigValueEvaluator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates single createValue using a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Evaluates all property values from a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.ConfigValueEvaluator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spisupport.<a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></h3>
+<code><a href="ConfigValueEvaluator.html#evaluateAllValues(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateAllValues</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultConfigValueEvaluator</h4>
+<pre>public&nbsp;DefaultConfigValueEvaluator()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluateRawValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;evaluateRawValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                      <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">ConfigValueEvaluator</a></code></span></div>
+<div class="block">Evaluates single createValue using a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValue</a></code>&nbsp;in interface&nbsp;<code><a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the config key, not null.</dd>
+<dd><code>context</code> - the context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluateRawValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;evaluateRawValues&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">ConfigValueEvaluator</a></code></span></div>
+<div class="block">Evaluates all property values from a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ConfigValueEvaluator.html#evaluateRawValues(org.apache.tamaya.spi.ConfigurationContext)">evaluateRawValues</a></code>&nbsp;in interface&nbsp;<code><a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigValueEvaluator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfiguration.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfiguration.html
new file mode 100644
index 0000000..ad374f0
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfiguration.html
@@ -0,0 +1,808 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultConfiguration (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultConfiguration class">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="getValues()">
+<meta name="keywords" content="evaluteRawValue()">
+<meta name="keywords" content="getOrDefault()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="convertValue()">
+<meta name="keywords" content="with()">
+<meta name="keywords" content="query()">
+<meta name="keywords" content="getContext()">
+<meta name="keywords" content="getSnapshot()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultConfiguration (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":42,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultConfiguration" class="title">Class DefaultConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultConfiguration</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">Implementation of the Configuration API. This class uses the current <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> to evaluate the
+ chain of <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>
+ instances to evaluate the current Configuration.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.DefaultConfiguration">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.Configuration">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></h3>
+<code><a href="../Configuration.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">DefaultConfiguration</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)">convertValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected <a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluteRawValue(java.lang.String)">evaluteRawValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"><code>ConfigValueEvaluator.evaluateRawValue(String, ConfigurationContext)</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String,java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext()">getContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access a configuration's context.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current properties, composed by the loaded <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and filtered
+ by registered <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSnapshot(java.lang.Iterable)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Create a snapshot, which contains the given keys.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues(java.lang.String)">getValues</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#query(org.apache.tamaya.ConfigQuery)">query</a></span>&#8203;(<a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Query a configuration.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#with(org.apache.tamaya.ConfigOperator)">with</a></span>&#8203;(<a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</code></th>
+<td class="colLast">
+<div class="block">Extension point for adjusting configuration.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.Configuration">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></h3>
+<code><a href="../Configuration.html#adapt(java.util.function.Function)">adapt</a>, <a href="../Configuration.html#get(java.lang.Iterable)">get</a>, <a href="../Configuration.html#get(java.lang.Iterable,java.lang.Class)">get</a>, <a href="../Configuration.html#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get</a>, <a href="../Configuration.html#getOptional(java.lang.Iterable)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.Iterable,java.lang.Class)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.String)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.String,java.lang.Class)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="../Configuration.html#getOrDefault(java.lang.Iterable,java.lang.Class,T)">getOrDefault</a>, <a href="../Configuration.html#getOrDefault(java.lang.Iterable,java.lang.String)">getOrDefault</a>, <a href="../Configuration.html#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a>, <a href="../Configuration.html#getSnapshot(java.lang.String...)">getSnapshot</a>, <a href="../Configuration.html#map(java.util.function.UnaryOperator)">map</a>, <a href="../Configuration.html#toBuilder()">toBuilder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultConfiguration</h4>
+<pre>public&nbsp;DefaultConfiguration&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;configurationContext)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configurationContext</code> - The configuration Context to be used.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the filtered createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValues(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getValues&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Get a given createValue, filtered with the context's filters as needed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the filtered createValue, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluteRawValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluteRawValue</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
+protected&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;evaluteRawValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Use <a href="ConfigValueEvaluator.html#evaluateRawValue(java.lang.String,org.apache.tamaya.spi.ConfigurationContext)"><code>ConfigValueEvaluator.evaluateRawValue(String, ConfigurationContext)</code></a>.</div>
+</div>
+<div class="block">Evaluates the raw value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createValue, before filtering is applied.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.String)">Configuration</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dd><code>defaultValue</code> - value to be returned, if no value is present, not <code>null</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,java.lang.Class,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.String,java.lang.Class,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                          T&nbsp;defaultValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.Class,T)">Configuration</a></code></span></div>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. <code>
+                     a/b/c/d.myProperty</code>, not  <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not  <code>null</code>.</dd>
+<dd><code>defaultValue</code> - value to be used, if no value is present, not <code>null</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getProperties()</pre>
+<div class="block">Get the current properties, composed by the loaded <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and filtered
+ by registered <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getProperties()">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the final properties.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#get(java.lang.String,java.lang.Class)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the createValue type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. <code>
+             a/b/c/d.myProperty</code>, never <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted createValue, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String,org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the createValue type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. <code>
+             a/b/c/d.myProperty</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted createValue, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="convertValue(java.lang.String,java.util.List,org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertValue</h4>
+<pre class="methodSignature">protected&nbsp;&lt;T&gt;&nbsp;T&nbsp;convertValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+                             <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                          <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                          T&nbsp;defaultValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">Configuration</a></code></span></div>
+<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ literals for the given key.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the type literal</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g.
+                     <code>a/b/c/d.myProperty</code>, not <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dd><code>defaultValue</code> - default value to be used, if no value is present.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="with(org.apache.tamaya.ConfigOperator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>with</h4>
+<pre class="methodSignature">public&nbsp;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;with&#8203;(<a href="../ConfigOperator.html" title="interface in org.apache.tamaya">ConfigOperator</a>&nbsp;operator)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#with(org.apache.tamaya.ConfigOperator)">Configuration</a></code></span></div>
+<div class="block">Extension point for adjusting configuration.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#with(org.apache.tamaya.ConfigOperator)">with</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>operator</code> - A configuration operator, e.g. a filter, or an adjuster
+                 combining configurations, never  <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the new adjusted configuration returned by the <code>operator</code>, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="query(org.apache.tamaya.ConfigQuery)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>query</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;query&#8203;(<a href="../ConfigQuery.html" title="interface in org.apache.tamaya">ConfigQuery</a>&lt;T&gt;&nbsp;query)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#query(org.apache.tamaya.ConfigQuery)">Configuration</a></code></span></div>
+<div class="block">Query a configuration.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#query(org.apache.tamaya.ConfigQuery)">query</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the configuration.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>query</code> - the query, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the result returned by the <code>query</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getContext()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getContext()">Configuration</a></code></span></div>
+<div class="block">Access a configuration's context.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getContext()">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration context, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSnapshot(java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSnapshot</h4>
+<pre class="methodSignature">public&nbsp;<a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>&nbsp;getSnapshot&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getSnapshot(java.lang.Iterable)">Configuration</a></code></span></div>
+<div class="block">Create a snapshot, which contains the given keys.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getSnapshot(java.lang.Iterable)">getSnapshot</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the keys, not null. If empty a full snapshot with all known keys is returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a corresponding snapshot instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html
new file mode 100644
index 0000000..f60bcc9
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html
@@ -0,0 +1,1353 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultConfigurationBuilder class">
+<meta name="keywords" content="serviceContext">
+<meta name="keywords" content="propertyFilters">
+<meta name="keywords" content="propertySources">
+<meta name="keywords" content="propertyConverters">
+<meta name="keywords" content="metaDataProvider">
+<meta name="keywords" content="built">
+<meta name="keywords" content="setClassLoader()">
+<meta name="keywords" content="getClassLoader()">
+<meta name="keywords" content="setServiceContext()">
+<meta name="keywords" content="setConfiguration()">
+<meta name="keywords" content="setContext()">
+<meta name="keywords" content="setMeta()">
+<meta name="keywords" content="addPropertySources()">
+<meta name="keywords" content="addDefaultPropertyFilters()">
+<meta name="keywords" content="addDefaultPropertySources()">
+<meta name="keywords" content="addDefaultPropertyConverters()">
+<meta name="keywords" content="removePropertySources()">
+<meta name="keywords" content="getPropertySources()">
+<meta name="keywords" content="increasePriority()">
+<meta name="keywords" content="decreasePriority()">
+<meta name="keywords" content="highestPriority()">
+<meta name="keywords" content="lowestPriority()">
+<meta name="keywords" content="addPropertyFilters()">
+<meta name="keywords" content="removePropertyFilters()">
+<meta name="keywords" content="removePropertyConverters()">
+<meta name="keywords" content="addPropertyConverters()">
+<meta name="keywords" content="build()">
+<meta name="keywords" content="sortPropertyFilter()">
+<meta name="keywords" content="sortPropertySources()">
+<meta name="keywords" content="sortPropertyConverter()">
+<meta name="keywords" content="getPropertyFilters()">
+<meta name="keywords" content="getPropertyConverter()">
+<meta name="keywords" content="loadDefaults()">
+<meta name="keywords" content="getDefaultPropertyConverters()">
+<meta name="keywords" content="addCorePropertyResources()">
+<meta name="keywords" content="addCorePropertyConverters()">
+<meta name="keywords" content="getPropertySource()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigurationBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultConfigurationBuilder" class="title">Class DefaultConfigurationBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultConfigurationBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultConfigurationBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></pre>
+<div class="block">Default implementation of <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#built">built</a></span></code></th>
+<td class="colLast">
+<div class="block">Flag if the config has already been built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#metaDataProvider">metaDataProvider</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#propertyConverters">propertyConverters</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#propertyFilters">propertyFilters</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#propertySources">propertySources</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#serviceContext">serviceContext</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultConfigurationBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.Configuration)">DefaultConfigurationBuilder</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ConfigurationContext)">DefaultConfigurationBuilder</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addCorePropertyConverters()">addCorePropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addCorePropertyResources(java.util.List)">addCorePropertyResources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultPropertyConverters()">addDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add all auto-discoverable property converters to the context built.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultPropertyFilters()">addDefaultPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add all auto-discoverable property filters to the context built.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addDefaultPropertySources()">addDefaultPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Adds all registered (default) property sources to the context built.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</code></th>
+<td class="colLast">
+<div class="block">This method can be used for adding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Adds the given <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertySources(java.util.Collection)">addPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code></th>
+<td class="colLast">
+<div class="block">Adds the given sources as property sources.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Decreases the priority of the given property source, by moving it towards the start
+ of the chain of property sources.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassLoader()">getClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the classloader used by this builder.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultPropertyConverters()">getDefaultPropertyConverters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverter()">getPropertyConverter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current registered property converters.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current chain of property filters.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>protected <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySource(java.lang.String)">getPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current chain of property sources.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Increases the priority of the given property source to be maximal, by moving it to
+ the tail of the of property source chain.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Increases the priority of the given property source, by moving it towards the end
+ of the chain of property sources.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>protected <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadDefaults()">loadDefaults</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Decreases the priority of the given property source to be minimal, by moving it to
+ the start of the chain of property source chain.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</code></th>
+<td class="colLast">
+<div class="block">Removes all converters for the given type, which actually renders a given type
+ unsupported for type conversion.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</code></th>
+<td class="colLast">
+<div class="block">Removes the given <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removePropertySources(java.util.Collection)">removePropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">Removes the given property sources, if existing.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setClassLoader(java.lang.ClassLoader)">setClassLoader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Set the classloader to be used for loading of configuration resources, equals to
+ <code>setServiceContext(ServiceContextManager.getServiceContext(classLoader))</code>.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Allows to setCurrent configuration context during unit tests.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Init this builder instance with the given <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds (overrides existing value) the given sources as property sources.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Adds (overrides existing value with same same keys) the given sources as property sources.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></span>&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Sets the ServiceContext to be used.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property converters using the given comparator.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property filters using the given comparator.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortPropertySources(java.util.Comparator)">sortPropertySources</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</code></th>
+<td class="colLast">
+<div class="block">Sorts the current registered property sources using the given comparator.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.ConfigurationBuilder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></h3>
+<code><a href="../spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">addPropertyConverters</a>, <a href="../spi/ConfigurationBuilder.html#addPropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">addPropertyFilters</a>, <a href="../spi/ConfigurationBuilder.html#addPropertySources(org.apache.tamaya.spi.PropertySource...)">addPropertySources</a>, <a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter...)">removePropertyConverters</a>, <a href="../spi/ConfigurationBuilder.html#removePropertyFilters(org.apache.tamaya.spi.PropertyFilter...)">removePropertyFilters</a>, <a href="../spi/ConfigurationBuilder.html#removePropertySources(org.apache.tamaya.spi.PropertySource...)">removePropertySources</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="serviceContext">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serviceContext</h4>
+<pre>protected&nbsp;<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> serviceContext</pre>
+</li>
+</ul>
+<a id="propertyFilters">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>propertyFilters</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt; propertyFilters</pre>
+</li>
+</ul>
+<a id="propertySources">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>propertySources</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt; propertySources</pre>
+</li>
+</ul>
+<a id="propertyConverters">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>propertyConverters</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt; propertyConverters</pre>
+</li>
+</ul>
+<a id="metaDataProvider">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>metaDataProvider</h4>
+<pre>protected&nbsp;<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a> metaDataProvider</pre>
+</li>
+</ul>
+<a id="built">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>built</h4>
+<pre>protected&nbsp;boolean built</pre>
+<div class="block">Flag if the config has already been built.
+ Configuration can be built only once</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DefaultConfigurationBuilder</h4>
+<pre>public&nbsp;DefaultConfigurationBuilder()</pre>
+<div class="block">Creates a new builder instance.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DefaultConfigurationBuilder</h4>
+<pre>public&nbsp;DefaultConfigurationBuilder&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Creates a new builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the configuration context to be used, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.Configuration)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultConfigurationBuilder</h4>
+<pre>public&nbsp;DefaultConfigurationBuilder&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</pre>
+<div class="block">Creates a new builder instance initializing it with the given context.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - the configuration to be used, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setClassLoader(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setClassLoader</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setClassLoader&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Set the classloader to be used for loading of configuration resources, equals to
+ <code>setServiceContext(ServiceContextManager.getServiceContext(classLoader))</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)">setClassLoader</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the classloader, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../spi/ConfigurationBuilder.html#getClassLoader()"><code>ConfigurationBuilder.getClassLoader()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getClassLoader()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClassLoader</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getClassLoader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#getClassLoader()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Get the classloader used by this builder.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#getClassLoader()">getClassLoader</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the classloader, never null.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../spi/ConfigurationBuilder.html#setClassLoader(java.lang.ClassLoader)"><code>ConfigurationBuilder.setClassLoader(ClassLoader)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setServiceContext(org.apache.tamaya.spi.ServiceContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setServiceContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setServiceContext&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Sets the ServiceContext to be used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#setServiceContext(org.apache.tamaya.spi.ServiceContext)">setServiceContext</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceContext</code> - the serviceContext, nuo null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="setConfiguration(org.apache.tamaya.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setConfiguration&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;configuration)</pre>
+<div class="block">Allows to setCurrent configuration context during unit tests.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#setConfiguration(org.apache.tamaya.Configuration)">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - the configuration to be used, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setContext(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setContext&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Init this builder instance with the given <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance. This
+ method will use any existing property sources, filters, converters and the combination
+ policy of the given <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> and initialize the current builder
+ with them. All previous property sources, filters, converters and the combination
+ policy of this instance will be replaced.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#setContext(org.apache.tamaya.spi.ConfigurationContext)">setContext</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> instance to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Adds (overrides existing value) the given sources as property sources.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null,</dd>
+<dd><code>key</code> - the key, not null.</dd>
+<dd><code>value</code> - the value, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current configuration builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Adds (overrides existing value with same same keys) the given sources as property sources.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#setMeta(java.lang.String,java.util.Map)">setMeta</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null,</dd>
+<dd><code>metaData</code> - the metadata, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current configuration builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertySources(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertySources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</pre>
+<div class="block">Adds the given sources as property sources.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#addPropertySources(java.util.Collection)">addPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sources</code> - property sources to addPropertyValue.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current configuration builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="addDefaultPropertyFilters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDefaultPropertyFilters</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addDefaultPropertyFilters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#addDefaultPropertyFilters()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Add all auto-discoverable property filters to the context built.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#addDefaultPropertyFilters()">addDefaultPropertyFilters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addDefaultPropertySources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDefaultPropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addDefaultPropertySources()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#addDefaultPropertySources()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Adds all registered (default) property sources to the context built. The sources are ordered
+ based on their ordinal values and added to the chain of property sources with
+ higher priority.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#addDefaultPropertySources()">addDefaultPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addDefaultPropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDefaultPropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addDefaultPropertyConverters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#addDefaultPropertyConverters()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Add all auto-discoverable property converters to the context built.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#addDefaultPropertyConverters()">addDefaultPropertyConverters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertySources(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertySources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#removePropertySources(java.util.Collection)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Removes the given property sources, if existing. The existing order of property
+ sources is preserved.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#removePropertySources(java.util.Collection)">removePropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySources</code> - the property sources to remove, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertySources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#getPropertySources()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Access the current chain of property sources. Items at the end of the createList have
+ precedence/higher significance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#getPropertySources()">getPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property source chain, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="increasePriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>increasePriority</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;increasePriority&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Increases the priority of the given property source, by moving it towards the end
+ of the chain of property sources. If the property source given is already at the end
+ this method has no effect. This operation does not change any ordinal values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#increasePriority(org.apache.tamaya.spi.PropertySource)">increasePriority</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be incresed regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="decreasePriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decreasePriority</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;decreasePriority&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Decreases the priority of the given property source, by moving it towards the start
+ of the chain of property sources. If the property source given is already the first
+ this method has no effect. This operation does not change any ordinal values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#decreasePriority(org.apache.tamaya.spi.PropertySource)">decreasePriority</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be decresed regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="highestPriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>highestPriority</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;highestPriority&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Increases the priority of the given property source to be maximal, by moving it to
+ the tail of the of property source chain. If the property source given is
+ already the last item this method has no effect. This operation does not change
+ any ordinal values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#highestPriority(org.apache.tamaya.spi.PropertySource)">highestPriority</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be maximized regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="lowestPriority(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lowestPriority</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;lowestPriority&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Decreases the priority of the given property source to be minimal, by moving it to
+ the start of the chain of property source chain. If the property source given is
+ already the first item this method has no effect. This operation does not change
+ any ordinal values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#lowestPriority(org.apache.tamaya.spi.PropertySource)">lowestPriority</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be minimized regarding its significance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyFilters(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyFilters</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertyFilters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Adds the given <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, hereby the instances are added
+ to the end of the createList with highest priority. The ordering of existing
+ property filters remains unchanged. To sort the property
+ filters call <a href="../spi/ConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)"><code>ConfigurationBuilder.sortPropertyFilter(java.util.Comparator&lt;org.apache.tamaya.spi.PropertyFilter&gt;)</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#addPropertyFilters(java.util.Collection)">addPropertyFilters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filters</code> - the filters to addPropertyValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyFilters(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyFilters</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyFilters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;filters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Removes the given <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances, if existing. The order of the remaining
+ filters is preserved.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#removePropertyFilters(java.util.Collection)">removePropertyFilters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filters</code> - the filter to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;typeToConvert,
+                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;converters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Removes the given PropertyConverter instances for the given type,
+ if existing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">removePropertyConverters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type which the converter is used</dd>
+<dd><code>converters</code> - the converter to remove</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removePropertyConverters(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;removePropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;typeToConvert)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Removes all converters for the given type, which actually renders a given type
+ unsupported for type conversion.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#removePropertyConverters(org.apache.tamaya.TypeLiteral)">removePropertyConverters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>typeToConvert</code> - the type which the converter is used</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;addPropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;propertyConverters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">ConfigurationBuilder</a></code></span></div>
+<div class="block">This method can be used for adding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s.
+ Converters are added at the end after any existing converters.
+ For converters already registered for the current target type the
+ method has no effect.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#addPropertyConverters(org.apache.tamaya.TypeLiteral,java.util.Collection)">addPropertyConverters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the target type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type for which the converter is used</dd>
+<dd><code>propertyConverters</code> - the PropertyConverters to addPropertyValue for this type</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder, for chaining, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;build()</pre>
+<div class="block">Builds a new configuration based on the configuration of this builder instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#build()">build</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a> configuration instance,
+         never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sortPropertyFilter(java.util.Comparator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sortPropertyFilter</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;sortPropertyFilter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;comparator)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Sorts the current registered property filters using the given comparator.
+
+ <p>NOTE: property filters at the beginning have minimal significance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#sortPropertyFilter(java.util.Comparator)">sortPropertyFilter</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comparator</code> - the comparator to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="sortPropertySources(java.util.Comparator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sortPropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;sortPropertySources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;comparator)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Sorts the current registered property sources using the given comparator.
+
+ <p>NOTE: property sources at the beginning have minimal significance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#sortPropertySources(java.util.Comparator)">sortPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comparator</code> - the comparator to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="sortPropertyConverter(java.util.Comparator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sortPropertyConverter</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;sortPropertyConverter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&nbsp;comparator)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">ConfigurationBuilder</a></code></span></div>
+<div class="block">Sorts the current registered property converters using the given comparator.
+
+ <p>NOTE: property converters at the beginning have minimal significance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#sortPropertyConverter(java.util.Comparator)">sortPropertyConverter</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comparator</code> - the comparator to be used, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyFilters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyFilters</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;getPropertyFilters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#getPropertyFilters()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Access the current chain of property filters. Items at the end of the createList have
+ precedence/higher significance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#getPropertyFilters()">getPropertyFilters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property filter chain, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyConverter()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyConverter</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;getPropertyConverter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationBuilder.html#getPropertyConverter()">ConfigurationBuilder</a></code></span></div>
+<div class="block">Access the current registered property converters.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationBuilder.html#getPropertyConverter()">getPropertyConverter</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current registered property converters.</dd>
+</dl>
+</li>
+</ul>
+<a id="loadDefaults()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadDefaults</h4>
+<pre class="methodSignature">protected&nbsp;<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>&nbsp;loadDefaults()</pre>
+</li>
+</ul>
+<a id="getDefaultPropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultPropertyConverters</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&gt;&gt;&nbsp;getDefaultPropertyConverters()</pre>
+</li>
+</ul>
+<a id="addCorePropertyResources(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addCorePropertyResources</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addCorePropertyResources&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources)</pre>
+</li>
+</ul>
+<a id="addCorePropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addCorePropertyConverters</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addCorePropertyConverters()</pre>
+</li>
+</ul>
+<a id="getPropertySource(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPropertySource</h4>
+<pre class="methodSignature">protected&nbsp;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;getPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigurationBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationContext.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationContext.html
new file mode 100644
index 0000000..5de2178
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationContext.html
@@ -0,0 +1,651 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultConfigurationContext (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultConfigurationContext class">
+<meta name="keywords" content="getMetaData()">
+<meta name="keywords" content="getServiceContext()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="getPropertySources()">
+<meta name="keywords" content="getPropertySource()">
+<meta name="keywords" content="getPropertyConverters()">
+<meta name="keywords" content="getPropertyFilters()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultConfigurationContext (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigurationContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultConfigurationContext" class="title">Class DefaultConfigurationContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultConfigurationContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultConfigurationContext</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">Default implementation of a simple <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.DefaultConfigurationContext">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.ConfigurationContext">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></h3>
+<code><a href="../spi/ConfigurationContext.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext</a></span>&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                           <a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spisupport.DefaultConfigurationBuilder)">DefaultConfigurationContext</a></span>&#8203;(<a href="DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a>&nbsp;builder)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetaData(java.lang.String)">getMetaData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Get the metadata evaluated for this configuration.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">
+ This method returns the Map of registered <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
+ per type.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">
+ This method returns the registered <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyFilters()">getPropertyFilters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySource(java.lang.String)">getPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Access a <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method returns the current createList of registered <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s ordered via their ordinal.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServiceContext()">getServiceContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the underlying <a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.spisupport.DefaultConfigurationBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DefaultConfigurationContext</h4>
+<pre>protected&nbsp;DefaultConfigurationContext&#8203;(<a href="DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a>&nbsp;builder)</pre>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultConfigurationContext</h4>
+<pre>public&nbsp;DefaultConfigurationContext&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                                   <a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMetaData(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaData</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMetaData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getMetaData(java.lang.String)">ConfigurationContext</a></code></span></div>
+<div class="block">Get the metadata evaluated for this configuration.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getMetaData(java.lang.String)">getMetaData</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the metadata fpr this key, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getServiceContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServiceContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;getServiceContext()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getServiceContext()">ConfigurationContext</a></code></span></div>
+<div class="block">Access the underlying <a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getServiceContext()">getServiceContext</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service context, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertySources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getPropertySources()">ConfigurationContext</a></code></span></div>
+<div class="block">This method returns the current createList of registered <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s ordered via their ordinal.
+ <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s with a lower ordinal come last. The <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> with the
+ highest ordinal comes first.
+ If two <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s have the same ordinal number they will current sorted
+ using their class name just to ensure the user at least gets the same ordering
+ after a JVM restart, hereby names before are added last.
+ <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s are loaded when this method is called the first time, which basically is
+ when the first time configuration is accessed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getPropertySources()">getPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a sorted createList of registered <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s.  The returned createList need not be modifiable</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertySource(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertySource</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;getPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getPropertySource(java.lang.String)">ConfigurationContext</a></code></span></div>
+<div class="block">Access a <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> using its (unique) name.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getPropertySource(java.lang.String)">getPropertySource</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the propoerty source's name, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the propoerty source found, or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;getPropertyConverters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getPropertyConverters()">ConfigurationContext</a></code></span></div>
+<div class="block"><p>
+ This method returns the Map of registered <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s
+ per type.
+ The List for each type is ordered via their <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> and
+ class name.
+ </p>
+
+ <p>A simplified scenario could be like:</p>
+ <pre>
+  {
+      Date.class -&gt; {StandardDateConverter, TimezoneDateConverter, MyCustomDateConverter }
+      Boolean.class -&gt; {StandardBooleanConverter, FrenchBooleanConverter}
+      Integer.class -&gt; {DynamicDefaultConverter}
+  }
+ </pre></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getPropertyConverters()">getPropertyConverters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mapProperties with sorted createList of registered <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s per type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyConverters(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;getPropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">ConfigurationContext</a></code></span></div>
+<div class="block"><p>
+ This method returns the registered <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s for a given type.
+ The List for each type is ordered via their <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a>.
+ </p>
+
+ <p>
+ <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s with a higher <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> come first.
+ The <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> with the lowest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> comes last.
+ If two <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a>s have the same ordinal number they will current sorted
+ using their class name just to ensure the user at least gets the same ordering
+ after a JVM restart.
+ </p>
+
+ <p>
+ Additionally, if a PropertyProvider is accessed which is not registered, the implementation
+ should try to figure out if there could be a default implementation as follows:</p>
+ <ol>
+     <li>Look for static factory methods: <code>of(String), createValue(String), getInstance(String),
+     instanceOf(String), fomr(String)</code></li>
+     <li>Look for a matching constructor: <code>T(String)</code>.</li>
+ </ol>
+
+ <p>
+ If a correspoding factory method or constructor could be found, a corresponding
+ <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> should be created and registered automatically for the given
+ type.
+ </p>
+
+ <p> The scenario could be like:</p>
+
+ <pre>
+  {
+      Date.class -&gt; {MyCustomDateConverter,StandardDateConverter, TimezoneDateConverter}
+      Boolean.class -&gt; {StandardBooleanConverter, FrenchBooleanConverter}
+      Integer.class -&gt; {DynamicDefaultConverter}
+  }
+ </pre>
+
+ <p>
+ The converters returned for a type should be used as a chain, whereas the result of the
+ first converters that is able to convert the configured createValue, is taken as the chain's result.
+ No more converters are called after a converter has successfully converted the input into
+ the required target type.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the type literal</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>targetType</code> - type of the desired converters</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a sorted createList of registered <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s per type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyFilters()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPropertyFilters</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;getPropertyFilters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ConfigurationContext.html#getPropertyFilters()">ConfigurationContext</a></code></span></div>
+<div class="block">Access the current <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ConfigurationContext.html#getPropertyFilters()">getPropertyFilters</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the createList of registered <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s, never null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigurationContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html
new file mode 100644
index 0000000..582980d
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html
@@ -0,0 +1,772 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultConfigurationSnapshot class">
+<meta name="keywords" content="getSnapshot()">
+<meta name="keywords" content="getKeys()">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="getOrDefault()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getContext()">
+<meta name="keywords" content="getTimestamp()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="getId()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigurationSnapshot.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultConfigurationSnapshot" class="title">Class DefaultConfigurationSnapshot</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultConfigurationSnapshot</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code>, <code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultConfigurationSnapshot</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">/**
+ Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable. Note that hereby only the scannable key/createValue pairs are considered.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.DefaultConfigurationSnapshot">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.ConfigurationSnapshot">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.<a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></h3>
+<code><a href="../ConfigurationSnapshot.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.Configuration)">DefaultConfigurationSnapshot</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.Configuration,java.lang.Iterable)">DefaultConfigurationSnapshot</a></span>&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String,java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+   <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext()">getContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access a configuration's context.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink">UUID</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the unique id of this frozen configuration.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeys()">getKeys</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the evaluated keys of this frozen coinfiguration.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Gets the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+            T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Get the property keys as type T.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access all currently known configuration properties as a full <code>Map&lt;String,String&gt;</code>.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSnapshot(java.lang.Iterable)">getSnapshot</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Create a snapshot, which contains the given keys.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTimestamp()">getTimestamp</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the moment in time when this frozen configuration has been created.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.Configuration">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></h3>
+<code><a href="../Configuration.html#adapt(java.util.function.Function)">adapt</a>, <a href="../Configuration.html#get(java.lang.Iterable)">get</a>, <a href="../Configuration.html#get(java.lang.Iterable,java.lang.Class)">get</a>, <a href="../Configuration.html#get(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">get</a>, <a href="../Configuration.html#getOptional(java.lang.Iterable)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.Iterable,java.lang.Class)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.Iterable,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.String)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.String,java.lang.Class)">getOptional</a>, <a href="../Configuration.html#getOptional(java.lang.String,org.apache.tamaya.TypeLiteral)">getOptional</a>, <a href="../Configuration.html#getOrDefault(java.lang.Iterable,java.lang.Class,T)">getOrDefault</a>, <a href="../Configuration.html#getOrDefault(java.lang.Iterable,java.lang.String)">getOrDefault</a>, <a href="../Configuration.html#getOrDefault(java.lang.Iterable,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a>, <a href="../Configuration.html#getSnapshot(java.lang.String...)">getSnapshot</a>, <a href="../Configuration.html#map(java.util.function.UnaryOperator)">map</a>, <a href="../Configuration.html#query(org.apache.tamaya.ConfigQuery)">query</a>, <a href="../Configuration.html#toBuilder()">toBuilder</a>, <a href="../Configuration.html#with(org.apache.tamaya.ConfigOperator)">with</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.Configuration,java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DefaultConfigurationSnapshot</h4>
+<pre>public&nbsp;DefaultConfigurationSnapshot&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The base configuration.</dd>
+<dd><code>keys</code> - The keys to evaluate, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.Configuration)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultConfigurationSnapshot</h4>
+<pre>public&nbsp;DefaultConfigurationSnapshot&#8203;(<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>&nbsp;config)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The base configuration.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getSnapshot(java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSnapshot</h4>
+<pre class="methodSignature">public&nbsp;<a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>&nbsp;getSnapshot&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getSnapshot(java.lang.Iterable)">Configuration</a></code></span></div>
+<div class="block">Create a snapshot, which contains the given keys.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getSnapshot(java.lang.Iterable)">getSnapshot</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keys</code> - the keys, not null. If empty a full snapshot with all known keys is returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a corresponding snapshot instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getKeys()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeys</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getKeys()</pre>
+<div class="block">Get the evaluated keys of this frozen coinfiguration.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../ConfigurationSnapshot.html#getKeys()">getKeys</a></code>&nbsp;in interface&nbsp;<code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the keys, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#get(java.lang.String)">Configuration</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's value.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.String)">Configuration</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.String)">getOrDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dd><code>defaultValue</code> - value to be returned, if no value is present, not <code>null</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property's keys.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,java.lang.Class,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.String,java.lang.Class,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                          T&nbsp;defaultValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.Class,T)">Configuration</a></code></span></div>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getOrDefault(java.lang.String,java.lang.Class,T)">getOrDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. <code>
+                     a/b/c/d.myProperty</code>, not  <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not  <code>null</code>.</dd>
+<dd><code>defaultValue</code> - value to be used, if no value is present, not <code>null</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#get(java.lang.String,java.lang.Class)">Configuration</a></code></span></div>
+<div class="block">Gets the property keys as type T. This will implicitly require a corresponding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ fromMap for the given String keys.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#get(java.lang.String,java.lang.Class)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the class modeled by the type parameter</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. @code
+                     a/b/c/d.myProperty}.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String,org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                 <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Accesses the current String createValue for the given key and tries to convert it
+ using the <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances provided by the current
+ <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#get(java.lang.String,org.apache.tamaya.TypeLiteral)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the createValue type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g. @code
+             a/b/c/d.myProperty}.</dd>
+<dd><code>type</code> - The target type required, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted createValue, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,java.lang.Object)">
+<!--   -->
+</a><a id="getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrDefault</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getOrDefault&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                          <a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;type,
+                          T&nbsp;defaultValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">Configuration</a></code></span></div>
+<div class="block">Get the property keys as type T. This will implicitly require a corresponding <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> to be available that is capable of providing type T
+ literals for the given key.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getOrDefault(java.lang.String,org.apache.tamaya.TypeLiteral,T)">getOrDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the type literal</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's absolute, or relative path, e.g.
+                     <code>a/b/c/d.myProperty</code>, not <code>null</code>.</dd>
+<dd><code>type</code> - The target type required, not <code>null</code>.</dd>
+<dd><code>defaultValue</code> - default value to be used, if no value is present.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getProperties()">Configuration</a></code></span></div>
+<div class="block">Access all currently known configuration properties as a full <code>Map&lt;String,String&gt;</code>.
+ Be aware that entries from non scannable parts of the registered <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>
+ instances may not be contained in the result, but nevertheless be accessible by calling one of the
+ <code>current(...)</code> methods.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getProperties()">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>all currently known configuration properties.</dd>
+</dl>
+</li>
+</ul>
+<a id="getContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;getContext()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Configuration.html#getContext()">Configuration</a></code></span></div>
+<div class="block">Access a configuration's context.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../Configuration.html#getContext()">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration context, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTimestamp()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimestamp</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getTimestamp()</pre>
+<div class="block"><p>Returns the moment in time when this frozen configuration has been created.</p>
+
+ <p>The time is taken from <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html?is-external=true#currentTimeMillis()" title="class or interface in java.lang" class="externalLink">System.currentTimeMillis()</a></p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../ConfigurationSnapshot.html#getTimestamp()">getTimestamp</a></code>&nbsp;in interface&nbsp;<code><a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the moment in time when this configuration has been created</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html?is-external=true#currentTimeMillis()" title="class or interface in java.lang" class="externalLink"><code>System.currentTimeMillis()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink">UUID</a>&nbsp;getId()</pre>
+<div class="block"><p>Returns the unique id of this frozen configuration.</p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unique id of this frozen configuration, never <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultConfigurationSnapshot.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultMetaDataProvider.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultMetaDataProvider.html
new file mode 100644
index 0000000..7141592
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultMetaDataProvider.html
@@ -0,0 +1,493 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultMetaDataProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultMetaDataProvider class">
+<meta name="keywords" content="init()">
+<meta name="keywords" content="getMetaData()">
+<meta name="keywords" content="setMeta()">
+<meta name="keywords" content="reset()">
+<meta name="keywords" content="toString()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultMetaDataProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultMetaDataProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultMetaDataProvider" class="title">Class DefaultMetaDataProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultMetaDataProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultMetaDataProvider</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></pre>
+<div class="block">Default metadata provider implementation, which searches for all kind of entries
+ formatted as <code>[(META)key].metaKey=metaValue</code>. All matching key/values are added to the
+ meta data mapProperties for the given key as <code>metaKey=metaValue</code> meta entries.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultMetaDataProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetaData(java.lang.String)">getMetaData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</code></th>
+<td class="colLast">
+<div class="block">Access the current metadata for the given configuration context and key.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Initializes the provider with the given context.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Resets this instance, which means it reloads metadata based on the given context and</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset(java.lang.String)">reset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</code></th>
+<td class="colLast">
+<div class="block">Resets metadata for a property, which means it reloads metadata based on the given context and</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds additional metadata.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Adds additional metadata.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultMetaDataProvider</h4>
+<pre>public&nbsp;DefaultMetaDataProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">public&nbsp;<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;init&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MetadataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">MetadataProvider</a></code></span></div>
+<div class="block">Initializes the provider with the given context. Each context must manage it's own
+ provider instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MetadataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></code>&nbsp;in interface&nbsp;<code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the target context, never null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMetaData(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaData</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMetaData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MetadataProvider.html#getMetaData(java.lang.String)">MetadataProvider</a></code></span></div>
+<div class="block">Access the current metadata for the given configuration context and key. The MetaData will be
+ accessible from <a href="../spi/ConfigurationContext.html#getMetaData(java.lang.String)"><code>ConfigurationContext.getMetaData(String)</code></a>. Note that the metadata must not
+ to be cached by it's consumers, so caching/optimazitation is delegated to this implementation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MetadataProvider.html#getMetaData(java.lang.String)">getMetaData</a></code>&nbsp;in interface&nbsp;<code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the (immutable) metadata of this configuration context.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature">public&nbsp;<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MetadataProvider.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">MetadataProvider</a></code></span></div>
+<div class="block">Adds additional metadata. This metadata entries typically override all entries
+ from alternate sources.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MetadataProvider.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></code>&nbsp;in interface&nbsp;<code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dd><code>key</code> - the metadata key, not null.</dd>
+<dd><code>value</code> - the metadata value, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature">public&nbsp;<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MetadataProvider.html#setMeta(java.lang.String,java.util.Map)">MetadataProvider</a></code></span></div>
+<div class="block">Adds additional metadata. This metadata entries typically override all entries
+ from alternate sources.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MetadataProvider.html#setMeta(java.lang.String,java.util.Map)">setMeta</a></code>&nbsp;in interface&nbsp;<code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dd><code>metaData</code> - the metadata to setPropertyValue/replace.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature">public&nbsp;<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;reset&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MetadataProvider.html#reset(java.lang.String)">MetadataProvider</a></code></span></div>
+<div class="block">Resets metadata for a property, which means it reloads metadata based on the given context and</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MetadataProvider.html#reset(java.lang.String)">reset</a></code>&nbsp;in interface&nbsp;<code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature">public&nbsp;<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;reset()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MetadataProvider.html#reset()">MetadataProvider</a></code></span></div>
+<div class="block">Resets this instance, which means it reloads metadata based on the given context and</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MetadataProvider.html#reset()">reset</a></code>&nbsp;in interface&nbsp;<code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultMetaDataProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html
new file mode 100644
index 0000000..5b1a90a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html
@@ -0,0 +1,646 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultPropertySourceSnapshot (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot class">
+<meta name="keywords" content="of()">
+<meta name="keywords" content="getKeys()">
+<meta name="keywords" content="getName()">
+<meta name="keywords" content="getOrdinal()">
+<meta name="keywords" content="getFrozenAt()">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultPropertySourceSnapshot (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultPropertySourceSnapshot.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultPropertySourceSnapshot" class="title">Class DefaultPropertySourceSnapshot</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultPropertySourceSnapshot</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable. Note that hereby only the scannable key/createValue pairs are considered.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.PropertySource)">DefaultPropertySourceSnapshot</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">DefaultPropertySourceSnapshot</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFrozenAt()">getFrozenAt</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the creation timestamp of this instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeys()">getKeys</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the property source.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal()">getOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The ordinal value is the default ordering parameter which definines the default order of
+ auto-discovered property sources.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(org.apache.tamaya.spi.PropertySource)">of</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">of</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a>, <a href="../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DefaultPropertySourceSnapshot</h4>
+<pre>public&nbsp;DefaultPropertySourceSnapshot&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - The base PropertySource.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultPropertySourceSnapshot</h4>
+<pre>public&nbsp;DefaultPropertySourceSnapshot&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - The base PropertySource.</dd>
+<dd><code>keys</code> - the keys to be added to the snapshot.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="of(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>of</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a>&nbsp;of&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given. This method
+ uses all keys available in the property mapProperties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be frozen, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the frozen property source.</dd>
+</dl>
+</li>
+</ul>
+<a id="of(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>of</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a>&nbsp;of&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</pre>
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source to be frozen, not null.</dd>
+<dd><code>keys</code> - the keys to be evaluated for the snapshot. Only these keys will be contained in the resulting
+             snapshot.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the frozen property source.</dd>
+</dl>
+</li>
+</ul>
+<a id="getKeys()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeys</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getKeys()</pre>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/PropertySource.html#getName()">PropertySource</a></code></span></div>
+<div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
+ to ensure unique identity, either locally or remotely.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/PropertySource.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration's name, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrdinal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrdinal</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getOrdinal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/PropertySource.html#getOrdinal()">PropertySource</a></code></span></div>
+<div class="block">The ordinal value is the default ordering parameter which definines the default order of
+ auto-discovered property sources. Ordering of property sources is important since values
+ from property sources with higher ordinal values override values from less significant
+ property sources.
+
+ By default Tamaya includes the following property sources:
+ <ol>
+     <li>Properties file values (/META-INF/javaconfiguration.properties) (ordinal 100)</li>
+     <li>JNDI values (ordinal 200, only when adding the <code>tamaya-jndi</code> extension module)</li>
+     <li>Environment properties (ordinal 300)</li>
+     <li>System properties (ordinal 1000)</li>
+ </ol>
+
+ <p><b>Important Hints for custom implementations</b>:</p>
+ <p>
+ If a custom implementation should be invoked <b>before</b> the default implementations, use a value &gt; 1000
+ </p>
+ <p>
+ If a custom implementation should be invoked <b>after</b> the default implementations, use a value &lt; 100
+ </p>
+
+ <p>Reordering of the default order of the config-sources:</p>
+ <p>Example: If the properties file/s should be used <b>before</b> the other implementations,
+ you have to configure an ordinal &gt; 1000. That means, you have to addPropertyValue e.g. tamaya.ordinal=401 to
+ /META-INF/javaconfiguration.properties . Hint: In case of property files every file is handled as independent
+ config-source, but all of them have ordinal 400 by default (and can be reordered in a fine-grained manner.</p>
+
+ In cases where it is not possible to change a config sources ordinal value, you may have several options:
+ <ul>
+     <li>you can use a <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> to redefine the source order and finally use
+     <a href="../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
+     change the current default <a href="../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
+     <li>finally, the implementor of this API may define alternate mechanism to reconfigure an ordinal
+     in a vendor specific way.</li>
+ </ul></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/PropertySource.html#getOrdinal()">getOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the 'importance' aka ordinal of the configured values. The higher, the more important.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFrozenAt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFrozenAt</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getFrozenAt()</pre>
+<div class="block">Get the creation timestamp of this instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the creation timestamp</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/PropertySource.html#get(java.lang.String)">PropertySource</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/PropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
+ value is null, simply return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/PropertySource.html#getProperties()">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultPropertySourceSnapshot.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/DefaultServiceContext.html b/apidocs/stable/org/apache/tamaya/spisupport/DefaultServiceContext.html
new file mode 100644
index 0000000..c182013
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/DefaultServiceContext.html
@@ -0,0 +1,580 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultServiceContext (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.DefaultServiceContext class">
+<meta name="keywords" content="getService()">
+<meta name="keywords" content="create()">
+<meta name="keywords" content="getServices()">
+<meta name="keywords" content="register()">
+<meta name="keywords" content="reset()">
+<meta name="keywords" content="getClassLoader()">
+<meta name="keywords" content="init()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultServiceContext (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultServiceContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class DefaultServiceContext" class="title">Class DefaultServiceContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.DefaultServiceContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code>, <code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">DefaultServiceContext</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></pre>
+<div class="block">This class implements the (default) <a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> to load the services required.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.ServiceContext">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></h3>
+<code><a href="../spi/ServiceContext.html#PRIORITY_ANNOTATION_AVAILABLE">PRIORITY_ANNOTATION_AVAILABLE</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultServiceContext</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class,java.util.function.Supplier)">create</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassLoader()">getClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the currently assigned cassloader instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getService(java.lang.Class,java.util.function.Supplier)">getService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Access a service singleton via its type.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServices(java.lang.Class,java.util.function.Supplier)">getServices</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;supplier)</code></th>
+<td class="colLast">
+<div class="block">Loads and registers services.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(java.lang.ClassLoader)">init</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Initializes this instance with the classloader to be used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.util.List,boolean)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;instances,
+        boolean&nbsp;force)</code></th>
+<td class="colLast">
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,T,boolean)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+        T&nbsp;instance,
+        boolean&nbsp;force)</code></th>
+<td class="colLast">
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Resets the current service context, removing all loaded services.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.ServiceContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></h3>
+<code><a href="../spi/ServiceContext.html#create(java.lang.Class)">create</a>, <a href="../spi/ServiceContext.html#getResource(java.lang.String)">getResource</a>, <a href="../spi/ServiceContext.html#getResources(java.lang.String)">getResources</a>, <a href="../spi/ServiceContext.html#getService(java.lang.Class)">getService</a>, <a href="../spi/ServiceContext.html#getServices(java.lang.Class)">getServices</a>, <a href="../spi/ServiceContext.html#ordinal()">ordinal</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultServiceContext</h4>
+<pre>public&nbsp;DefaultServiceContext()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getService(java.lang.Class,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getService</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">ServiceContext</a></code></span></div>
+<div class="block">Access a service singleton via its type.
+ If multiple implementations for the very serviceType exist then
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServiceContext.html#getService(java.lang.Class,java.util.function.Supplier)">getService</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to be used, if no services could be evaluated. If null,
+                 an empty collection is returned, when no services
+                 could be located.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The instance to be used, or <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a id="create(java.lang.Class,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;create&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;T&gt;&nbsp;supplier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">ServiceContext</a></code></span></div>
+<div class="block">Factory method to createObject a type, hereby a new instance is created on each access.
+ If multiple implementations for the very serviceType exist then
+ the one with the highest <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> will be used as the base
+ for creating subsequent instances.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServiceContext.html#create(java.lang.Class,java.util.function.Supplier)">create</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the service type.</dd>
+<dd><code>supplier</code> - the supplier to create a new service, if no service could be autodetected.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The new instance to be used, or <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getServices(java.lang.Class,java.util.function.Supplier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getServices</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;getServices&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&gt;&nbsp;supplier)</pre>
+<div class="block">Loads and registers services.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServiceContext.html#getServices(java.lang.Class,java.util.function.Supplier)">getServices</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the concrete type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - The service type.</dd>
+<dd><code>supplier</code> - the supplier to be used, if no services could be evaluated. If null,
+                 an empty collection is returned, when no services
+                 could be located.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the items found, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.Object,boolean)">
+<!--   -->
+</a><a id="register(java.lang.Class,T,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;serviceType,
+                      T&nbsp;instance,
+                      boolean&nbsp;force)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ServiceContext.html#register(java.lang.Class,T,boolean)">ServiceContext</a></code></span></div>
+<div class="block">Registers the given instance as a singleton service for the given instance, if no
+ instance already has been registered.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServiceContext.html#register(java.lang.Class,T,boolean)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - thy type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceType</code> - the type to register, not null.</dd>
+<dd><code>instance</code> - the instance, not null.</dd>
+<dd><code>force</code> - if true, any existing instance will be replaced.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instance registered or already present.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.util.List,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;T&gt;&nbsp;instances,
+                            boolean&nbsp;force)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ServiceContext.html#register(java.lang.Class,java.util.List,boolean)">ServiceContext</a></code></span></div>
+<div class="block">Registers the given instancea as servicea for the given instance, if no
+      * instance already has been registered.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServiceContext.html#register(java.lang.Class,java.util.List,boolean)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - thy type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type to register, not null.</dd>
+<dd><code>instances</code> - the instancea, not null.</dd>
+<dd><code>force</code> - if true, any existing instances will be replaced.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instances registered or already present.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;reset()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ServiceContext.html#reset()">ServiceContext</a></code></span></div>
+<div class="block">Resets the current service context, removing all loaded services. This implicitly triggers a new load
+ of the service context.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServiceContext.html#reset()">reset</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getClassLoader()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClassLoader</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getClassLoader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ClassloaderAware.html#getClassLoader()">ClassloaderAware</a></code></span></div>
+<div class="block">Get the currently assigned cassloader instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ClassloaderAware.html#getClassLoader()">getClassLoader</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the classloader, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="init(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;init&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ClassloaderAware.html#init(java.lang.ClassLoader)">ClassloaderAware</a></code></span></div>
+<div class="block">Initializes this instance with the classloader to be used.
+ This method is called by the implementation when the instance is loaded
+ through the <a href="../spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><code>ServiceContextManager</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ClassloaderAware.html#init(java.lang.ClassLoader)">init</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader, not not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultServiceContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/EnumConverter.html b/apidocs/stable/org/apache/tamaya/spisupport/EnumConverter.html
new file mode 100644
index 0000000..fd97918
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/EnumConverter.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>EnumConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.EnumConverter class">
+<meta name="keywords" content="convert()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnumConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class EnumConverter" class="title">Class EnumConverter&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.EnumConverter&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the enum type</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">EnumConverter&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</pre>
+<div class="block">Converter, converting from String to the given enum type.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Class)">EnumConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="EnumConverter.html" title="type parameter in EnumConverter">T</a>&gt;&nbsp;enumType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="EnumConverter.html" title="type parameter in EnumConverter">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+       <a href="../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</code></th>
+<td class="colLast">
+<div class="block">Convert the given configuration keys from its String representation into the required target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EnumConverter</h4>
+<pre>public&nbsp;EnumConverter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="EnumConverter.html" title="type parameter in EnumConverter">T</a>&gt;&nbsp;enumType)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convert</h4>
+<pre class="methodSignature">public&nbsp;<a href="EnumConverter.html" title="type parameter in EnumConverter">T</a>&nbsp;convert&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="../spi/ConversionContext.html" title="class in org.apache.tamaya.spi">ConversionContext</a>&nbsp;ctx)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">PropertyConverter</a></code></span></div>
+<div class="block">Convert the given configuration keys from its String representation into the required target type.
+ Additional data can be obtained from <a href="../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a>, which also allows to addPropertyValue a list
+ of supported formats, which is very handy in case a
+ value could not be converted. This list of supported formats can then shown to the user to give some hints
+ how a value could be configured.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/PropertyConverter.html#convert(java.lang.String,org.apache.tamaya.spi.ConversionContext)">convert</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;<a href="EnumConverter.html" title="type parameter in EnumConverter">T</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - configuration key that needs to be converted</dd>
+<dd><code>ctx</code> - the converter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the converted value</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><code>ConversionContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumConverter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/MetadataProvider.html b/apidocs/stable/org/apache/tamaya/spisupport/MetadataProvider.html
new file mode 100644
index 0000000..7f09242
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/MetadataProvider.html
@@ -0,0 +1,400 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>MetadataProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.MetadataProvider interface">
+<meta name="keywords" content="init()">
+<meta name="keywords" content="getMetaData()">
+<meta name="keywords" content="setMeta()">
+<meta name="keywords" content="reset()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetadataProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Interface MetadataProvider" class="title">Interface MetadataProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MetadataProvider</span></pre>
+<div class="block">This interface allows to plugin different metadata mechanism. The default implementation
+ does load metadata information along the same property sources hierarchy as configuration.
+ MetaData entries are in the format <code>[(META)key].metakey=metavalue</code>. Alternate implementations can
+ choose whatever is appropriate, including loading metadata from external sources.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetaData(java.lang.String)">getMetaData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access the current metadata for the given configuration context and key.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></span>&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Initializes the provider with the given context.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Resets this instance, which means it reloads metadata based on the given context and</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset(java.lang.String)">reset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</code></th>
+<td class="colLast">
+<div class="block">Resets metadata for a property, which means it reloads metadata based on the given context and</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds additional metadata.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Adds additional metadata.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature"><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;init&#8203;(<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Initializes the provider with the given context. Each context must manage it's own
+ provider instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - the target context, never null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMetaData(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaData</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMetaData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block">Access the current metadata for the given configuration context and key. The MetaData will be
+ accessible from <a href="../spi/ConfigurationContext.html#getMetaData(java.lang.String)"><code>ConfigurationContext.getMetaData(String)</code></a>. Note that the metadata must not
+ to be cached by it's consumers, so caching/optimazitation is delegated to this implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the (immutable) metadata of this configuration context.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature"><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Adds additional metadata. This metadata entries typically override all entries
+ from alternate sources.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dd><code>key</code> - the metadata key, not null.</dd>
+<dd><code>value</code> - the metadata value, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMeta(java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMeta</h4>
+<pre class="methodSignature"><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;setMeta&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</pre>
+<div class="block">Adds additional metadata. This metadata entries typically override all entries
+ from alternate sources.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dd><code>metaData</code> - the metadata to setPropertyValue/replace.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature"><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;reset&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</pre>
+<div class="block">Resets metadata for a property, which means it reloads metadata based on the given context and</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - the property key, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre class="methodSignature"><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;reset()</pre>
+<div class="block">Resets this instance, which means it reloads metadata based on the given context and</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/PriorityServiceComparator.html b/apidocs/stable/org/apache/tamaya/spisupport/PriorityServiceComparator.html
new file mode 100644
index 0000000..638820c
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/PriorityServiceComparator.html
@@ -0,0 +1,363 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PriorityServiceComparator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.PriorityServiceComparator class">
+<meta name="keywords" content="getInstance()">
+<meta name="keywords" content="compare()">
+<meta name="keywords" content="getPriority()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PriorityServiceComparator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":9,"i3":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PriorityServiceComparator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class PriorityServiceComparator" class="title">Class PriorityServiceComparator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.PriorityServiceComparator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">PriorityServiceComparator</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">Comparator implementation for ordering services loaded based on their increasing priority values.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.PriorityServiceComparator">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#compare(java.lang.Object,java.lang.Object)">compare</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o1,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the shared instance of the comparator.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPriority(java.lang.Class)">getPriority</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Checks the given type optionally annotated with a @Priority.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPriority(java.lang.Object)">getPriority</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Checks the given instance for a @Priority annotation.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Comparator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#reversed()" title="class or interface in java.util" class="externalLink">reversed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.Comparator)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.function.Function)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.function.Function,java.util.Comparator)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingDouble(java.util.function.ToDoubleFunction)" title="class or interface in java.util" class="externalLink">thenComparingDouble</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingInt(java.util.function.ToIntFunction)" title="class or interface in java.util" class="externalLink">thenComparingInt</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingLong(java.util.function.ToLongFunction)" title="class or interface in java.util" class="externalLink">thenComparingLong</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a>&nbsp;getInstance()</pre>
+<div class="block">Get the shared instance of the comparator.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the shared instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="compare(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compare</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;compare&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o1,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o2)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#compare(T,T)" title="class or interface in java.util" class="externalLink">compare</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPriority(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPriority</h4>
+<pre class="methodSignature">public static&nbsp;int&nbsp;getPriority&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<div class="block">Checks the given instance for a @Priority annotation. If present the annotation's createValue is evaluated. If no such
+ annotation is present, a default priority <code>1</code> is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - the instance, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a priority, by default 1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPriority(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPriority</h4>
+<pre class="methodSignature">public static&nbsp;int&nbsp;getPriority&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type)</pre>
+<div class="block">Checks the given type optionally annotated with a @Priority. If present the annotation's createValue is evaluated.
+ If no such annotation is present, a default priority <code>1</code> is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a priority, by default 1.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PriorityServiceComparator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/PropertyConverterManager.html b/apidocs/stable/org/apache/tamaya/spisupport/PropertyConverterManager.html
new file mode 100644
index 0000000..324e778
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/PropertyConverterManager.html
@@ -0,0 +1,534 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertyConverterManager (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.PropertyConverterManager class">
+<meta name="keywords" content="initConverters()">
+<meta name="keywords" content="register()">
+<meta name="keywords" content="isTargetTypeSupported()">
+<meta name="keywords" content="getPropertyConverters()">
+<meta name="keywords" content="createDefaultPropertyConverter()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertyConverterManager (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyConverterManager.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class PropertyConverterManager" class="title">Class PropertyConverterManager</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.PropertyConverterManager</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">PropertyConverterManager</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Manager that deals with <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances.
+ This class is thread-safe.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext)">PropertyConverterManager</a></span>&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,boolean)">PropertyConverterManager</a></span>&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                        boolean&nbsp;init)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected &lt;T&gt;&nbsp;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)">createDefaultPropertyConverter</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Creates a dynamic <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> for the given target type.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverters()">getPropertyConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a mapProperties of all property converters currently registered.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyConverters(org.apache.tamaya.TypeLiteral)">getPropertyConverters</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Get the createList of all current registered converters for the given target type.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initConverters()">initConverters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Registers the default converters provided out of the box.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTargetTypeSupported(org.apache.tamaya.TypeLiteral)">isTargetTypeSupported</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</code></th>
+<td class="colLast">
+<div class="block">Allows to evaluate if a given target type is supported.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter)">register</a></span>&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType,
+        <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;converter)</code></th>
+<td class="colLast">
+<div class="block">Registers a new converters instance.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ServiceContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PropertyConverterManager</h4>
+<pre>public&nbsp;PropertyConverterManager&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceContext</code> - the Service context, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ServiceContext,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PropertyConverterManager</h4>
+<pre>public&nbsp;PropertyConverterManager&#8203;(<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                                boolean&nbsp;init)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceContext</code> - the Service context, not null.</dd>
+<dd><code>init</code> - if true, the converters are loaded eagerly.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="initConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initConverters</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;initConverters()</pre>
+<div class="block">Registers the default converters provided out of the box.</div>
+</li>
+</ul>
+<a id="register(org.apache.tamaya.TypeLiteral,org.apache.tamaya.spi.PropertyConverter)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;register&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType,
+                         <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;converter)</pre>
+<div class="block">Registers a new converters instance.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>targetType</code> - the target type, not <code>null</code>.</dd>
+<dd><code>converter</code> - the converters, not <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isTargetTypeSupported(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isTargetTypeSupported</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isTargetTypeSupported&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;&nbsp;targetType)</pre>
+<div class="block">Allows to evaluate if a given target type is supported.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>targetType</code> - the target type, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true, if a converter for the given type is registered or a default one can be created.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyConverters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;getPropertyConverters()</pre>
+<div class="block">Get a mapProperties of all property converters currently registered. This will not contain the converters that
+ may be created, when an instance is adapted, which provides a String constructor or compatible
+ factory methods taking a single String instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current mapProperties of instantiated and registered converters.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)"><code>createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyConverters(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyConverters</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&gt;&nbsp;getPropertyConverters&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</pre>
+<div class="block">Get the createList of all current registered converters for the given target type.
+
+ <p>
+ If no converters are registered, the component tries to createObject and register dynamic
+ converters based on String constructor or static factory methods available.
+ The converters provided are of the following type and returned in the following order:
+ <ul>
+ <li>Converters mapped explicitly to the required target type are returned first, ordered
+ by decreasing priority. This means, if explicit converters are registered these are used
+ primarily for converting a createValue.</li>
+ <li>The target type of each explicitly registered converter can also be transitively mapped to
+ 1) all directly implemented interfaces, 2) all its superclasses (except Object), 3) all the interfaces
+ implemented by its superclasses. This group of transitive converters is returned similarly in the
+ order already mentioned, whereas here a priority based on decreasing ordering is applied.</li>
+ <li>java.lang wrapper classes and native types are automatically mapped.</li>
+ <li>If no explicit converters are registered, for Enum types a default implementation is provided that
+ compares the configuration values with the different enum members defined (case sensitive mapping).</li>
+ </ul>
+ <p>
+ The above createList of directly registered mappings are always tried first, before any transitive mapping
+ should be used. Also in all cases @Priority annotations are honored for ordering of the converters in place.
+ Transitive conversion is supported for all directly implemented interfaces (including inherited ones) and
+ the inheritance hierarchy (exception Object). Superinterfaces of implemented interfaces are ignored.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type class</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>targetType</code> - the target type, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ordered createList of converters (may be empty for not convertible types).</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)"><code>createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createDefaultPropertyConverter(org.apache.tamaya.TypeLiteral)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDefaultPropertyConverter</h4>
+<pre class="methodSignature">protected&nbsp;&lt;T&gt;&nbsp;<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;&nbsp;createDefaultPropertyConverter&#8203;(<a href="../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;T&gt;&nbsp;targetType)</pre>
+<div class="block">Creates a dynamic <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> for the given target type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type class</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>targetType</code> - the target type</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new converters, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyConverterManager.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/PropertyFilterComparator.html b/apidocs/stable/org/apache/tamaya/spisupport/PropertyFilterComparator.html
new file mode 100644
index 0000000..e0dcc9c
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/PropertyFilterComparator.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertyFilterComparator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.PropertyFilterComparator class">
+<meta name="keywords" content="getInstance()">
+<meta name="keywords" content="compare()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertyFilterComparator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyFilterComparator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class PropertyFilterComparator" class="title">Class PropertyFilterComparator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.PropertyFilterComparator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">PropertyFilterComparator</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">Comparator for <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s based on their priority annotations.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.PropertyFilterComparator">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#compare(org.apache.tamaya.spi.PropertyFilter,org.apache.tamaya.spi.PropertyFilter)">compare</a></span>&#8203;(<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter1,
+       <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the shared instance of the comparator.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Comparator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#reversed()" title="class or interface in java.util" class="externalLink">reversed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.Comparator)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.function.Function)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.function.Function,java.util.Comparator)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingDouble(java.util.function.ToDoubleFunction)" title="class or interface in java.util" class="externalLink">thenComparingDouble</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingInt(java.util.function.ToIntFunction)" title="class or interface in java.util" class="externalLink">thenComparingInt</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingLong(java.util.function.ToLongFunction)" title="class or interface in java.util" class="externalLink">thenComparingLong</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a>&nbsp;getInstance()</pre>
+<div class="block">Get the shared instance of the comparator.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the shared instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="compare(org.apache.tamaya.spi.PropertyFilter,org.apache.tamaya.spi.PropertyFilter)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>compare</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;compare&#8203;(<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter1,
+                   <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&nbsp;filter2)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#compare(T,T)" title="class or interface in java.util" class="externalLink">compare</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyFilterComparator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/PropertyFiltering.html b/apidocs/stable/org/apache/tamaya/spisupport/PropertyFiltering.html
new file mode 100644
index 0000000..1c70f40
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/PropertyFiltering.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertyFiltering (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.PropertyFiltering class">
+<meta name="keywords" content="applyFilter()">
+<meta name="keywords" content="applyFilters()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertyFiltering (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyFiltering.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class PropertyFiltering" class="title">Class PropertyFiltering</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.PropertyFiltering</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">PropertyFiltering</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Implementation of the Configuration API. This class uses the current <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> to evaluate the
+ chain of <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> and <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>
+ instances to evaluate the current Configuration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">applyFilter</a></span>&#8203;(<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+           <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+            <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters a single createValue.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">applyFilters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
+            <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Filters all properties.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="applyFilter(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>applyFilter</h4>
+<pre class="methodSignature">public static&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;applyFilter&#8203;(<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;value,
+                                        <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Filters a single createValue.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the raw createValue, not <code>null</code>.</dd>
+<dd><code>context</code> - the context</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the filtered createValue, including <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="applyFilters(java.util.List,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>applyFilters</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;applyFilters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;values,
+                                               <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Filters a single createValue.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the full values, not <code>null</code>.</dd>
+<dd><code>context</code> - the context</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the filtered createValue, including <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="applyFilters(java.util.Map,org.apache.tamaya.spi.ConfigurationContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>applyFilters</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;applyFilters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;rawProperties,
+                                                           <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</pre>
+<div class="block">Filters all properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rawProperties</code> - the unfiltered properties, not <code>null</code>.</dd>
+<dd><code>context</code> - the context</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the filtered createValue, including <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertyFiltering.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/PropertySourceChangeSupport.html b/apidocs/stable/org/apache/tamaya/spisupport/PropertySourceChangeSupport.html
new file mode 100644
index 0000000..362d9fa
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/PropertySourceChangeSupport.html
@@ -0,0 +1,459 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertySourceChangeSupport (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.PropertySourceChangeSupport class">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="getVersion()">
+<meta name="keywords" content="addChangeListener()">
+<meta name="keywords" content="removeChangeListener()">
+<meta name="keywords" content="removeAllChangeListeners()">
+<meta name="keywords" content="load()">
+<meta name="keywords" content="getValue()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="scheduleChangeMonitor()">
+<meta name="keywords" content="cancelSchedule()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertySourceChangeSupport (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertySourceChangeSupport.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class PropertySourceChangeSupport" class="title">Class PropertySourceChangeSupport</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.PropertySourceChangeSupport</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">PropertySourceChangeSupport</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Simple support class for helping with change management on property sources.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.tamaya.spi.ChangeSupport,org.apache.tamaya.spi.PropertySource)">PropertySourceChangeSupport</a></span>&#8203;(<a href="../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport,
+                           <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Create a new property change support instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancelSchedule()">cancelSchedule</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue(java.lang.String)">getValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#load(java.util.Map)">load</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAllChangeListeners()">removeAllChangeListeners</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scheduleChangeMonitor(java.util.function.Supplier,long,java.util.concurrent.TimeUnit)">scheduleChangeMonitor</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&gt;&nbsp;propertySupplier,
+                     long&nbsp;duration,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;timeUnit)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.apache.tamaya.spi.ChangeSupport,org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PropertySourceChangeSupport</h4>
+<pre>public&nbsp;PropertySourceChangeSupport&#8203;(<a href="../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport,
+                                   <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Create a new property change support instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>changeSupport</code> - the support type, not null.</dd>
+<dd><code>propertySource</code> - the property source to pass to listeners, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+</li>
+</ul>
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getVersion()</pre>
+</li>
+</ul>
+<a id="addChangeListener(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addChangeListener</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addChangeListener&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</pre>
+</li>
+</ul>
+<a id="removeChangeListener(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeChangeListener</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeChangeListener&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</pre>
+</li>
+</ul>
+<a id="removeAllChangeListeners()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeAllChangeListeners</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeAllChangeListeners()</pre>
+</li>
+</ul>
+<a id="load(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>load</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;load&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</pre>
+</li>
+</ul>
+<a id="getValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;getValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+</li>
+</ul>
+<a id="scheduleChangeMonitor(java.util.function.Supplier,long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>scheduleChangeMonitor</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;scheduleChangeMonitor&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&gt;&nbsp;propertySupplier,
+                                  long&nbsp;duration,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;timeUnit)</pre>
+</li>
+</ul>
+<a id="cancelSchedule()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cancelSchedule</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;cancelSchedule()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertySourceChangeSupport.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/PropertySourceComparator.html b/apidocs/stable/org/apache/tamaya/spisupport/PropertySourceComparator.html
new file mode 100644
index 0000000..210db54
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/PropertySourceComparator.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertySourceComparator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.PropertySourceComparator class">
+<meta name="keywords" content="getInstance()">
+<meta name="keywords" content="getOrdinal()">
+<meta name="keywords" content="setOrdinalKey()">
+<meta name="keywords" content="compare()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertySourceComparator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertySourceComparator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class PropertySourceComparator" class="title">Class PropertySourceComparator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.PropertySourceComparator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">PropertySourceComparator</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">Comparator for ordering of <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s based on their ordinal method and class name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.tamaya.spisupport.PropertySourceComparator">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#compare(org.apache.tamaya.spi.PropertySource,org.apache.tamaya.spi.PropertySource)">compare</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source1,
+       <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the shared instance of the comparator.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal(org.apache.tamaya.spi.PropertySource)">getOrdinal</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Evaluates an ordinal createValue from a <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, whereby the ordinal of type <code>int</code>
+ is evaluated as follows:
+ 
+     It evaluates the <code>String</code> createValue for <a href="../spi/PropertySource.html#TAMAYA_ORDINAL"><code>PropertySource.TAMAYA_ORDINAL</code></a> and tries
+     to convert it to an <code>int</code> createValue, using <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#parseInt(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.parseInt(String)</code></a>.
+     It tries to find and evaluate a method <code>int getOrdinal()</code>.
+     It tries to find and evaluate a static field <code>int ORDINAL</code>.
+     It tries to find and evaluate a class level <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation.
+     It uses the default priority (<code>0</code>.
+ </div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal(org.apache.tamaya.spi.PropertySource,java.lang.String)">getOrdinal</a></span>&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;alternativeOrdinalKey)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOrdinalKey(java.lang.String)">setOrdinalKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ordinalKey)</code></th>
+<td class="colLast">
+<div class="block">Overrides/adds the key to evaluate/override a property source ordinal.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Comparator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#reversed()" title="class or interface in java.util" class="externalLink">reversed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.Comparator)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.function.Function)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparing(java.util.function.Function,java.util.Comparator)" title="class or interface in java.util" class="externalLink">thenComparing</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingDouble(java.util.function.ToDoubleFunction)" title="class or interface in java.util" class="externalLink">thenComparingDouble</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingInt(java.util.function.ToIntFunction)" title="class or interface in java.util" class="externalLink">thenComparingInt</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#thenComparingLong(java.util.function.ToLongFunction)" title="class or interface in java.util" class="externalLink">thenComparingLong</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a>&nbsp;getInstance()</pre>
+<div class="block">Get the shared instance of the comparator.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the shared instance, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrdinal(org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrdinal</h4>
+<pre class="methodSignature">public static&nbsp;int&nbsp;getOrdinal&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</pre>
+<div class="block">Evaluates an ordinal createValue from a <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, whereby the ordinal of type <code>int</code>
+ is evaluated as follows:
+ <ol>
+     <li>It evaluates the <code>String</code> createValue for <a href="../spi/PropertySource.html#TAMAYA_ORDINAL"><code>PropertySource.TAMAYA_ORDINAL</code></a> and tries
+     to convert it to an <code>int</code> createValue, using <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#parseInt(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.parseInt(String)</code></a>.</li>
+     <li>It tries to find and evaluate a method <code>int getOrdinal()</code>.</li>
+     <li>It tries to find and evaluate a static field <code>int ORDINAL</code>.</li>
+     <li>It tries to find and evaluate a class level <a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Priority.html?is-external=true" title="class or interface in javax.annotation" class="externalLink"><code>Priority</code></a> annotation.</li>
+     <li>It uses the default priority (<code>0</code>.</li>
+ </ol></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySource</code> - the property source, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the ordinal createValue to compare the property source.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrdinal(org.apache.tamaya.spi.PropertySource,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrdinal</h4>
+<pre class="methodSignature">public static&nbsp;int&nbsp;getOrdinal&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;alternativeOrdinalKey)</pre>
+</li>
+</ul>
+<a id="setOrdinalKey(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOrdinalKey</h4>
+<pre class="methodSignature">public&nbsp;<a href="PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a>&nbsp;setOrdinalKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ordinalKey)</pre>
+<div class="block">Overrides/adds the key to evaluate/override a property source ordinal.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ordinalKey</code> - sets the alternative ordinal key, if null default
+                   behaviour will be active.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instance for chaining.</dd>
+</dl>
+</li>
+</ul>
+<a id="compare(org.apache.tamaya.spi.PropertySource,org.apache.tamaya.spi.PropertySource)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>compare</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;compare&#8203;(<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source1,
+                   <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;source2)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true#compare(T,T)" title="class or interface in java.util" class="externalLink">compare</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertySourceComparator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/ReflectionUtil.html b/apidocs/stable/org/apache/tamaya/spisupport/ReflectionUtil.html
new file mode 100644
index 0000000..d8f38a7
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/ReflectionUtil.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>ReflectionUtil (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.ReflectionUtil class">
+<meta name="keywords" content="getParametrizedType()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReflectionUtil (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionUtil.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class ReflectionUtil" class="title">Class ReflectionUtil</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.ReflectionUtil</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">ReflectionUtil</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Small utility class used by other parts.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/ParameterizedType.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">ParameterizedType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParametrizedType(java.lang.Class)">getParametrizedType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getParametrizedType(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getParametrizedType</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/ParameterizedType.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">ParameterizedType</a>&nbsp;getParametrizedType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionUtil.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/RegexPropertyFilter.html b/apidocs/stable/org/apache/tamaya/spisupport/RegexPropertyFilter.html
new file mode 100644
index 0000000..4ca067a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/RegexPropertyFilter.html
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>RegexPropertyFilter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.RegexPropertyFilter class">
+<meta name="keywords" content="setIncludes()">
+<meta name="keywords" content="setExcludes()">
+<meta name="keywords" content="filterProperty()">
+<meta name="keywords" content="toString()">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RegexPropertyFilter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RegexPropertyFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport</a></div>
+<h2 title="Class RegexPropertyFilter" class="title">Class RegexPropertyFilter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.RegexPropertyFilter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">RegexPropertyFilter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></pre>
+<div class="block">Predicate filtering using a regex expression operating on the key. It allows either
+ to define the target keys to be selected (includes), or to be excluded (excludes).</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RegexPropertyFilter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></span>&#8203;(<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;valueToBeFiltered,
+              <a href="../spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Maps the current <code>value</code> to a new value.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExcludes(java.lang.String...)">setExcludes</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;expressions)</code></th>
+<td class="colLast">
+<div class="block">Sets the regex expression to be applied on the key to remove the corresponding entries
+ if matching.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIncludes(java.lang.String...)">setIncludes</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;expressions)</code></th>
+<td class="colLast">
+<div class="block">Sets the regex expression to be applied on the key to filter the corresponding entry
+ if matching.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RegexPropertyFilter</h4>
+<pre>public&nbsp;RegexPropertyFilter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setIncludes(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIncludes</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setIncludes&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;expressions)</pre>
+<div class="block">Sets the regex expression to be applied on the key to filter the corresponding entry
+ if matching.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>expressions</code> - the regular expression for inclusion, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setExcludes(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setExcludes</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setExcludes&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;expressions)</pre>
+<div class="block">Sets the regex expression to be applied on the key to remove the corresponding entries
+ if matching.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>expressions</code> - the regular expressions for exclusion, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>filterProperty</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;filterProperty&#8203;(<a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;valueToBeFiltered,
+                                    <a href="../spi/FilterContext.html" title="class in org.apache.tamaya.spi">FilterContext</a>&nbsp;context)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/PropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">PropertyFilter</a></code></span></div>
+<div class="block"><p>Maps the current <code>value</code> to a new value. The resulting value will be used as the result
+ passed to the user.</p>
+ <p>If a filter is currently not available, it should just pass the input mapProperties to the method's
+ output.</p>
+ <p>Returning <code>null</code> will remove the entry.</p>
+ <h3>Implementation specification</h3>
+ Implementations of this class must be
+ <ul>
+     <li>reentrant</li>
+     <li>thread-safe</li>
+ </ul></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/PropertyFilter.html#filterProperty(org.apache.tamaya.spi.PropertyValue,org.apache.tamaya.spi.FilterContext)">filterProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>valueToBeFiltered</code> - the value to be filtered, which also can be <code>null</code> if removed by another filter.</dd>
+<dd><code>context</code> - the filter context, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the filtered value, or <code>null</code> if the value should be removed alltogether.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><code>PropertyValue</code></a>, 
+<a href="../spi/FilterContext.html" title="class in org.apache.tamaya.spi"><code>FilterContext</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RegexPropertyFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/ConfigValueEvaluator.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/ConfigValueEvaluator.html
new file mode 100644
index 0000000..0dba4f3
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/ConfigValueEvaluator.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spisupport.ConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.tamaya.spisupport.ConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.apache.tamaya.spisupport.ConfigValueEvaluator" class="title">Uses of Interface<br>org.apache.tamaya.spisupport.ConfigValueEvaluator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></span></code></th>
+<td class="colLast">
+<div class="block">Implementation of the Configuration API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigValueEvaluator.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigValueEvaluator.html
new file mode 100644
index 0000000..e4428ad
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigValueEvaluator.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigValueEvaluator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigValueEvaluator" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultConfigValueEvaluator</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.DefaultConfigValueEvaluator</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfiguration.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfiguration.html
new file mode 100644
index 0000000..9ef848a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfiguration.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultConfiguration (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultConfiguration (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultConfiguration" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">CoreConfiguration</a></span></code></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationBuilder.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationBuilder.html
new file mode 100644
index 0000000..9ad13af
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationBuilder.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationBuilder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationBuilder" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultConfigurationBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.core.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a> in <a href="../../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal">CoreConfigurationBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spisupport.DefaultConfigurationBuilder)">DefaultConfigurationContext</a></span>&#8203;(<a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a>&nbsp;builder)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationContext.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationContext.html
new file mode 100644
index 0000000..e165bdb
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationContext.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationContext (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationContext (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationContext" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultConfigurationContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.DefaultConfigurationContext</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationSnapshot.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationSnapshot.html
new file mode 100644
index 0000000..ba465bd
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultConfigurationSnapshot.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationSnapshot (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultConfigurationSnapshot" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultConfigurationSnapshot</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.DefaultConfigurationSnapshot</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultMetaDataProvider.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultMetaDataProvider.html
new file mode 100644
index 0000000..dc798a6
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultMetaDataProvider.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultMetaDataProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultMetaDataProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultMetaDataProvider" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultMetaDataProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.DefaultMetaDataProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultPropertySourceSnapshot.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultPropertySourceSnapshot.html
new file mode 100644
index 0000000..c463ea4
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultPropertySourceSnapshot.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultPropertySourceSnapshot.</span><code><span class="memberNameLink"><a href="../DefaultPropertySourceSnapshot.html#of(org.apache.tamaya.spi.PropertySource)">of</a></span>&#8203;(<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultPropertySourceSnapshot.</span><code><span class="memberNameLink"><a href="../DefaultPropertySourceSnapshot.html#of(org.apache.tamaya.spi.PropertySource,java.lang.Iterable)">of</a></span>&#8203;(<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;propertySource,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;keys)</code></th>
+<td class="colLast">
+<div class="block">Creates a new FrozenPropertySource instance based on a PropertySource and the target key setPropertyValue given.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultServiceContext.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultServiceContext.html
new file mode 100644
index 0000000..41b1f26
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/DefaultServiceContext.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.DefaultServiceContext (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.DefaultServiceContext (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.DefaultServiceContext" class="title">Uses of Class<br>org.apache.tamaya.spisupport.DefaultServiceContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.DefaultServiceContext</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/EnumConverter.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/EnumConverter.html
new file mode 100644
index 0000000..18257ae
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/EnumConverter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.EnumConverter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.EnumConverter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EnumConverter.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.EnumConverter" class="title">Uses of Class<br>org.apache.tamaya.spisupport.EnumConverter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.EnumConverter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EnumConverter.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/MetadataProvider.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/MetadataProvider.html
new file mode 100644
index 0000000..8006623
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/MetadataProvider.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Interface org.apache.tamaya.spisupport.MetadataProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.tamaya.spisupport.MetadataProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.apache.tamaya.spisupport.MetadataProvider" class="title">Uses of Interface<br>org.apache.tamaya.spisupport.MetadataProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that implement <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">Default metadata provider implementation, which searches for all kind of entries
+ formatted as <code>[(META)key].metaKey=metaValue</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> declared as <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultConfigurationBuilder.</span><code><span class="memberNameLink"><a href="../DefaultConfigurationBuilder.html#metaDataProvider">metaDataProvider</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultMetaDataProvider.</span><code><span class="memberNameLink"><a href="../DefaultMetaDataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></span>&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MetadataProvider.</span><code><span class="memberNameLink"><a href="../MetadataProvider.html#init(org.apache.tamaya.spi.ConfigurationContext)">init</a></span>&#8203;(<a href="../../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Initializes the provider with the given context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultMetaDataProvider.</span><code><span class="memberNameLink"><a href="../DefaultMetaDataProvider.html#reset()">reset</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultMetaDataProvider.</span><code><span class="memberNameLink"><a href="../DefaultMetaDataProvider.html#reset(java.lang.String)">reset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MetadataProvider.</span><code><span class="memberNameLink"><a href="../MetadataProvider.html#reset()">reset</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Resets this instance, which means it reloads metadata based on the given context and</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MetadataProvider.</span><code><span class="memberNameLink"><a href="../MetadataProvider.html#reset(java.lang.String)">reset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property)</code></th>
+<td class="colLast">
+<div class="block">Resets metadata for a property, which means it reloads metadata based on the given context and</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultMetaDataProvider.</span><code><span class="memberNameLink"><a href="../DefaultMetaDataProvider.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DefaultMetaDataProvider.</span><code><span class="memberNameLink"><a href="../DefaultMetaDataProvider.html#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MetadataProvider.</span><code><span class="memberNameLink"><a href="../MetadataProvider.html#setMeta(java.lang.String,java.lang.String,java.lang.String)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds additional metadata.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MetadataProvider.</span><code><span class="memberNameLink"><a href="../MetadataProvider.html#setMeta(java.lang.String,java.util.Map)">setMeta</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;property,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;metaData)</code></th>
+<td class="colLast">
+<div class="block">Adds additional metadata.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> with parameters of type <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DefaultConfigurationContext.html#%3Cinit%3E(org.apache.tamaya.spi.ServiceContext,java.util.List,java.util.List,java.util.Map,org.apache.tamaya.spisupport.MetadataProvider)">DefaultConfigurationContext</a></span>&#8203;(<a href="../../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>&nbsp;serviceContext,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt;&nbsp;propertyFilters,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;propertySources,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../../TypeLiteral.html" title="class in org.apache.tamaya">TypeLiteral</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;?&gt;&gt;&gt;&nbsp;propertyConverters,
+                           <a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>&nbsp;metaDataProvider)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/PriorityServiceComparator.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PriorityServiceComparator.html
new file mode 100644
index 0000000..cd03617
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PriorityServiceComparator.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.PriorityServiceComparator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.PriorityServiceComparator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.PriorityServiceComparator" class="title">Uses of Class<br>org.apache.tamaya.spisupport.PriorityServiceComparator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PriorityServiceComparator.</span><code><span class="memberNameLink"><a href="../PriorityServiceComparator.html#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the shared instance of the comparator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyConverterManager.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyConverterManager.html
new file mode 100644
index 0000000..c7794da
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyConverterManager.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.PropertyConverterManager (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.PropertyConverterManager (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.PropertyConverterManager" class="title">Uses of Class<br>org.apache.tamaya.spisupport.PropertyConverterManager</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.PropertyConverterManager</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyFilterComparator.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyFilterComparator.html
new file mode 100644
index 0000000..c122d47
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyFilterComparator.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.PropertyFilterComparator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.PropertyFilterComparator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.PropertyFilterComparator" class="title">Uses of Class<br>org.apache.tamaya.spisupport.PropertyFilterComparator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertyFilterComparator.</span><code><span class="memberNameLink"><a href="../PropertyFilterComparator.html#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the shared instance of the comparator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyFiltering.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyFiltering.html
new file mode 100644
index 0000000..3b3a0fb
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertyFiltering.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.PropertyFiltering (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.PropertyFiltering (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.PropertyFiltering" class="title">Uses of Class<br>org.apache.tamaya.spisupport.PropertyFiltering</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.PropertyFiltering</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertySourceChangeSupport.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertySourceChangeSupport.html
new file mode 100644
index 0000000..f600fa6
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertySourceChangeSupport.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.PropertySourceChangeSupport (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.PropertySourceChangeSupport (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.PropertySourceChangeSupport" class="title">Uses of Class<br>org.apache.tamaya.spisupport.PropertySourceChangeSupport</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.PropertySourceChangeSupport</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertySourceComparator.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertySourceComparator.html
new file mode 100644
index 0000000..1d7d4cd
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/PropertySourceComparator.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.PropertySourceComparator (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.PropertySourceComparator (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.PropertySourceComparator" class="title">Uses of Class<br>org.apache.tamaya.spisupport.PropertySourceComparator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport</a> that return <a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../PropertySourceComparator.html#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the shared instance of the comparator.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PropertySourceComparator.</span><code><span class="memberNameLink"><a href="../PropertySourceComparator.html#setOrdinalKey(java.lang.String)">setOrdinalKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ordinalKey)</code></th>
+<td class="colLast">
+<div class="block">Overrides/adds the key to evaluate/override a property source ordinal.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/ReflectionUtil.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/ReflectionUtil.html
new file mode 100644
index 0000000..30b84d7
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/ReflectionUtil.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.ReflectionUtil (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.ReflectionUtil (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionUtil.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.ReflectionUtil" class="title">Uses of Class<br>org.apache.tamaya.spisupport.ReflectionUtil</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.ReflectionUtil</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionUtil.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/class-use/RegexPropertyFilter.html b/apidocs/stable/org/apache/tamaya/spisupport/class-use/RegexPropertyFilter.html
new file mode 100644
index 0000000..d140dbd
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/class-use/RegexPropertyFilter.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.RegexPropertyFilter (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.RegexPropertyFilter (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.RegexPropertyFilter" class="title">Uses of Class<br>org.apache.tamaya.spisupport.RegexPropertyFilter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.RegexPropertyFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/package-summary.html b/apidocs/stable/org/apache/tamaya/spisupport/package-summary.html
new file mode 100644
index 0000000..6d15c14
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/package-summary.html
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.tamaya.spisupport (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport package">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.tamaya.spisupport (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.spisupport</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a></th>
+<td class="colLast">
+<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b> createValue
+ for a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a></th>
+<td class="colLast">
+<div class="block">This interface allows to plugin different metadata mechanism.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a></th>
+<td class="colLast">
+<div class="block">Implementation of the Configuration API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a></th>
+<td class="colLast">
+<div class="block">Default implementation of a simple <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationSnapshot</a></th>
+<td class="colLast">
+<div class="block">/**
+ Configuration implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport">DefaultConfigValueEvaluator</a></th>
+<td class="colLast">
+<div class="block">Implementation of the Configuration API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport">DefaultMetaDataProvider</a></th>
+<td class="colLast">
+<div class="block">Default metadata provider implementation, which searches for all kind of entries
+ formatted as <code>[(META)key].metaKey=metaValue</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></th>
+<td class="colLast">
+<div class="block">PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport">DefaultServiceContext</a></th>
+<td class="colLast">
+<div class="block">This class implements the (default) <a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><code>ServiceContext</code></a> interface and hereby uses the JDK
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ServiceLoader</code></a> to load the services required.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EnumConverter.html" title="class in org.apache.tamaya.spisupport">EnumConverter</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Converter, converting from String to the given enum type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">PriorityServiceComparator</a></th>
+<td class="colLast">
+<div class="block">Comparator implementation for ordering services loaded based on their increasing priority values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a></th>
+<td class="colLast">
+<div class="block">Manager that deals with <a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">PropertyFilterComparator</a></th>
+<td class="colLast">
+<div class="block">Comparator for <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s based on their priority annotations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PropertyFiltering.html" title="class in org.apache.tamaya.spisupport">PropertyFiltering</a></th>
+<td class="colLast">
+<div class="block">Implementation of the Configuration API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport">PropertySourceChangeSupport</a></th>
+<td class="colLast">
+<div class="block">Simple support class for helping with change management on property sources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">PropertySourceComparator</a></th>
+<td class="colLast">
+<div class="block">Comparator for ordering of <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s based on their ordinal method and class name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ReflectionUtil.html" title="class in org.apache.tamaya.spisupport">ReflectionUtil</a></th>
+<td class="colLast">
+<div class="block">Small utility class used by other parts.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport">RegexPropertyFilter</a></th>
+<td class="colLast">
+<div class="block">Predicate filtering using a regex expression operating on the key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/package-tree.html b/apidocs/stable/org/apache/tamaya/spisupport/package-tree.html
new file mode 100644
index 0000000..7747e8d
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/package-tree.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.tamaya.spisupport Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.tamaya.spisupport Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.tamaya.spisupport</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfiguration</span></a> (implements org.apache.tamaya.<a href="../Configuration.html" title="interface in org.apache.tamaya">Configuration</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationBuilder</span></a> (implements org.apache.tamaya.spi.<a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationContext</span></a> (implements org.apache.tamaya.spi.<a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationSnapshot</span></a> (implements org.apache.tamaya.<a href="../ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigValueEvaluator</span></a> (implements org.apache.tamaya.spisupport.<a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultMetaDataProvider</span></a> (implements org.apache.tamaya.spisupport.<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultPropertySourceSnapshot</span></a> (implements org.apache.tamaya.spi.<a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="../spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="EnumConverter.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">EnumConverter</span></a>&lt;T&gt; (implements org.apache.tamaya.spi.<a href="../spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PriorityServiceComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyConverterManager</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyFilterComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="PropertyFiltering.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyFiltering</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertySourceChangeSupport</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertySourceComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="ReflectionUtil.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">ReflectionUtil</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">RegexPropertyFilter</span></a> (implements org.apache.tamaya.spi.<a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>)</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.apache.tamaya.spisupport.<a href="ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport"><span class="typeNameLink">ConfigValueEvaluator</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="MetadataProvider.html" title="interface in org.apache.tamaya.spisupport"><span class="typeNameLink">MetadataProvider</span></a></li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/package-use.html b/apidocs/stable/org/apache/tamaya/spisupport/package-use.html
new file mode 100644
index 0000000..4fd62c5
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/package-use.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.spisupport (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.tamaya.spisupport (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.apache.tamaya.spisupport" class="title">Uses of Package<br>org.apache.tamaya.spisupport</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.apache.tamaya.spisupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.core.internal">org.apache.tamaya.core.internal</a></th>
+<td class="colLast">
+<div class="block">Contains implementations of different property sources for supporting
+ CLI, Environment and System Properties as well as simple properties
+ based on the formats defined by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport">org.apache.tamaya.spisupport</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.core.internal">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spisupport</a> used by <a href="../core/internal/package-summary.html">org.apache.tamaya.core.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DefaultConfiguration.html#org.apache.tamaya.core.internal">DefaultConfiguration</a></th>
+<td class="colLast">
+<div class="block">Implementation of the Configuration API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DefaultConfigurationBuilder.html#org.apache.tamaya.core.internal">DefaultConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spisupport</a> used by <a href="package-summary.html">org.apache.tamaya.spisupport</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ConfigValueEvaluator.html#org.apache.tamaya.spisupport">ConfigValueEvaluator</a></th>
+<td class="colLast">
+<div class="block">Component SPI which encapsulates the evaluation of a single or full <b>raw</b> createValue
+ for a <a href="../spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DefaultConfigurationBuilder.html#org.apache.tamaya.spisupport">DefaultConfigurationBuilder</a></th>
+<td class="colLast">
+<div class="block">Default implementation of <a href="../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DefaultPropertySourceSnapshot.html#org.apache.tamaya.spisupport">DefaultPropertySourceSnapshot</a></th>
+<td class="colLast">
+<div class="block">PropertySource implementation that stores all current values of a given (possibly dynamic, contextual and non server
+ capable instance) and is fully serializable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MetadataProvider.html#org.apache.tamaya.spisupport">MetadataProvider</a></th>
+<td class="colLast">
+<div class="block">This interface allows to plugin different metadata mechanism.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PriorityServiceComparator.html#org.apache.tamaya.spisupport">PriorityServiceComparator</a></th>
+<td class="colLast">
+<div class="block">Comparator implementation for ordering services loaded based on their increasing priority values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertyFilterComparator.html#org.apache.tamaya.spisupport">PropertyFilterComparator</a></th>
+<td class="colLast">
+<div class="block">Comparator for <a href="../spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a>s based on their priority annotations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PropertySourceComparator.html#org.apache.tamaya.spisupport">PropertySourceComparator</a></th>
+<td class="colLast">
+<div class="block">Comparator for ordering of <a href="../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>s based on their ordinal method and class name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BasePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BasePropertySource.html
new file mode 100644
index 0000000..ceb07bf
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BasePropertySource.html
@@ -0,0 +1,756 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>BasePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.BasePropertySource class">
+<meta name="keywords" content="getName()">
+<meta name="keywords" content="setName()">
+<meta name="keywords" content="setOrdinal()">
+<meta name="keywords" content="setDefaultOrdinal()">
+<meta name="keywords" content="getOrdinal()">
+<meta name="keywords" content="getDefaultOrdinal()">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="isDisabled()">
+<meta name="keywords" content="setDisabled()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="toStringValues()">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="setChangeSupport()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BasePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BasePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class BasePropertySource" class="title">Class BasePropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.BasePropertySource</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></code>, <code><a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></code>, <code><a href="JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></code>, <code><a href="MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></code>, <code><a href="PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></code>, <code><a href="../../examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></code>, <code><a href="SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></code>, <code><a href="SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">BasePropertySource</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></pre>
+<div class="block">Abstract <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
+ ordinal is provided with the config.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BasePropertySource</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructor, using a default ordinal of 0.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">BasePropertySource</a></span>&#8203;(int&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">BasePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">BasePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  int&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultOrdinal()">getDefaultOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the property source.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal()">getOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The ordinal value is the default ordering parameter which definines the default order of
+ auto-discovered property sources.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDisabled()">isDisabled</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a></span>&#8203;(<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport)</code></th>
+<td class="colLast">
+<div class="block">Sets the change support.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDisabled(boolean)">setDisabled</a></span>&#8203;(boolean&nbsp;disabled)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setName(java.lang.String)">setName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Sets the property source's (unique) name.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOrdinal(java.lang.Integer)">setOrdinal</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block">Allows setting the ordinal of this property source explicitly.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toStringValues()">toStringValues</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getProperties()">getProperties</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BasePropertySource</h4>
+<pre>protected&nbsp;BasePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the (unique) property source name, not <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BasePropertySource</h4>
+<pre>protected&nbsp;BasePropertySource&#8203;(int&nbsp;defaultOrdinal)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>defaultOrdinal</code> - default ordinal that will be used, if no ordinal is provided with the config.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BasePropertySource</h4>
+<pre>protected&nbsp;BasePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                             int&nbsp;defaultOrdinal)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the (unique) property source name, not <code>null</code>.</dd>
+<dd><code>defaultOrdinal</code> - default ordinal that will be used, if no ordinal is provided with the config.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BasePropertySource</h4>
+<pre>protected&nbsp;BasePropertySource()</pre>
+<div class="block">Constructor, using a default ordinal of 0.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getName()">PropertySource</a></code></span></div>
+<div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
+ to ensure unique identity, either locally or remotely.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration's name, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setName&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Sets the property source's (unique) name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name, not <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setOrdinal(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOrdinal</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setOrdinal&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;ordinal)</pre>
+<div class="block">Allows setting the ordinal of this property source explicitly. This will override any evaluated
+ ordinal, or default ordinal. To reset an explicit ordinal call <code>setOrdinal(null);</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ordinal</code> - the explicit ordinal, or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultOrdinal(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultOrdinal</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultOrdinal&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;defaultOrdinal)</pre>
+<div class="block">Allows setting the ordinal of this property source explicitly. This will override any evaluated
+ ordinal, or default ordinal. To reset an explicit ordinal call <code>setOrdinal(null);</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>defaultOrdinal</code> - the default ordinal, or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrdinal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrdinal</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getOrdinal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getOrdinal()">PropertySource</a></code></span></div>
+<div class="block">The ordinal value is the default ordering parameter which definines the default order of
+ auto-discovered property sources. Ordering of property sources is important since values
+ from property sources with higher ordinal values override values from less significant
+ property sources.
+
+ By default Tamaya includes the following property sources:
+ <ol>
+     <li>Properties file values (/META-INF/javaconfiguration.properties) (ordinal 100)</li>
+     <li>JNDI values (ordinal 200, only when adding the <code>tamaya-jndi</code> extension module)</li>
+     <li>Environment properties (ordinal 300)</li>
+     <li>System properties (ordinal 1000)</li>
+ </ol>
+
+ <p><b>Important Hints for custom implementations</b>:</p>
+ <p>
+ If a custom implementation should be invoked <b>before</b> the default implementations, use a value &gt; 1000
+ </p>
+ <p>
+ If a custom implementation should be invoked <b>after</b> the default implementations, use a value &lt; 100
+ </p>
+
+ <p>Reordering of the default order of the config-sources:</p>
+ <p>Example: If the properties file/s should be used <b>before</b> the other implementations,
+ you have to configure an ordinal &gt; 1000. That means, you have to addPropertyValue e.g. tamaya.ordinal=401 to
+ /META-INF/javaconfiguration.properties . Hint: In case of property files every file is handled as independent
+ config-source, but all of them have ordinal 400 by default (and can be reordered in a fine-grained manner.</p>
+
+ In cases where it is not possible to change a config sources ordinal value, you may have several options:
+ <ul>
+     <li>you can use a <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> to redefine the source order and finally use
+     <a href="../../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
+     change the current default <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
+     <li>finally, the implementor of this API may define alternate mechanism to reconfigure an ordinal
+     in a vendor specific way.</li>
+ </ul></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getOrdinal()">getOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the 'importance' aka ordinal of the configured values. The higher, the more important.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultOrdinal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultOrdinal</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultOrdinal()</pre>
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the  default ordinal used, by default 0.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#get(java.lang.String)">PropertySource</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
+ value is null, simply return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isDisabled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDisabled</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isDisabled()</pre>
+</li>
+</ul>
+<a id="setDisabled(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDisabled</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDisabled&#8203;(boolean&nbsp;disabled)</pre>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toStringValues()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toStringValues</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toStringValues()</pre>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&nbsp;setChangeSupport&#8203;(<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;changeSupport)</pre>
+<div class="block">Sets the change support.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>changeSupport</code> - the changeSupport, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this instance, for chaining.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BasePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html
new file mode 100644
index 0000000..a794e97
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>BuildablePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.BuildablePropertySource.Builder class">
+<meta name="keywords" content="withOrdinal()">
+<meta name="keywords" content="withSource()">
+<meta name="keywords" content="withName()">
+<meta name="keywords" content="withSimpleProperty()">
+<meta name="keywords" content="withProperties()">
+<meta name="keywords" content="withSimpleProperties()">
+<meta name="keywords" content="but()">
+<meta name="keywords" content="build()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BuildablePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySource.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class BuildablePropertySource.Builder" class="title">Class BuildablePropertySource.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.BuildablePropertySource.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">BuildablePropertySource.Builder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">The type Builder.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build buildable property source.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#but()">but</a></span>()</code></th>
+<td class="colLast">
+<div class="block">But builder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withName(java.lang.String)">withName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">With name builder.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withOrdinal(int)">withOrdinal</a></span>&#8203;(int&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block">With ordinal builder.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperties(java.util.Map,java.lang.String)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperties(java.util.Map)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperties(org.apache.tamaya.spi.PropertyValue...)">withProperties</a></span>&#8203;(<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSimpleProperties(java.util.Map)">withSimpleProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">With simple properties builder.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSimpleProperty(java.lang.String,java.lang.String)">withSimpleProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">With simple property builder.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSimpleProperty(java.lang.String,java.lang.String,java.lang.String)">withSimpleProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">With simple property builder.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSource(java.lang.String)">withSource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">With source builder.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="withOrdinal(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withOrdinal</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withOrdinal&#8203;(int&nbsp;ordinal)</pre>
+<div class="block">With ordinal builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ordinal</code> - the ordinal</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withSource(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withSource</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withSource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</pre>
+<div class="block">With source builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>source</code> - the source</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withName</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withName&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">With name builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withSimpleProperty(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withSimpleProperty</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withSimpleProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">With simple property builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the createValue</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withSimpleProperty(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withSimpleProperty</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withSimpleProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</pre>
+<div class="block">With simple property builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the createValue</dd>
+<dd><code>source</code> - the source</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperties(org.apache.tamaya.spi.PropertyValue...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withProperties&#8203;(<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</pre>
+<div class="block">With properties builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the values</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperties(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</pre>
+<div class="block">With properties builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - the properties</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperties(java.util.Map,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</pre>
+<div class="block">With properties builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - the properties</dd>
+<dd><code>source</code> - the source</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withSimpleProperties(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withSimpleProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;withSimpleProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties)</pre>
+<div class="block">With simple properties builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - the properties</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="but()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>but</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;but()</pre>
+<div class="block">But builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a>&nbsp;build()</pre>
+<div class="block">Build buildable property source.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the buildable property source</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySource.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html
new file mode 100644
index 0000000..8411cf2
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html
@@ -0,0 +1,595 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>BuildablePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.BuildablePropertySource class">
+<meta name="keywords" content="getOrdinal()">
+<meta name="keywords" content="getName()">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="builder()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BuildablePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class BuildablePropertySource" class="title">Class BuildablePropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.BuildablePropertySource</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">BuildablePropertySource</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></pre>
+<div class="block">A Buildable property source.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">The type Builder.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BuildablePropertySource</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builder builder.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the property source.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinal()">getOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The ordinal value is the default ordering parameter which definines the default order of
+ auto-discovered property sources.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BuildablePropertySource</h4>
+<pre>public&nbsp;BuildablePropertySource()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getOrdinal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrdinal</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getOrdinal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getOrdinal()">PropertySource</a></code></span></div>
+<div class="block">The ordinal value is the default ordering parameter which definines the default order of
+ auto-discovered property sources. Ordering of property sources is important since values
+ from property sources with higher ordinal values override values from less significant
+ property sources.
+
+ By default Tamaya includes the following property sources:
+ <ol>
+     <li>Properties file values (/META-INF/javaconfiguration.properties) (ordinal 100)</li>
+     <li>JNDI values (ordinal 200, only when adding the <code>tamaya-jndi</code> extension module)</li>
+     <li>Environment properties (ordinal 300)</li>
+     <li>System properties (ordinal 1000)</li>
+ </ol>
+
+ <p><b>Important Hints for custom implementations</b>:</p>
+ <p>
+ If a custom implementation should be invoked <b>before</b> the default implementations, use a value &gt; 1000
+ </p>
+ <p>
+ If a custom implementation should be invoked <b>after</b> the default implementations, use a value &lt; 100
+ </p>
+
+ <p>Reordering of the default order of the config-sources:</p>
+ <p>Example: If the properties file/s should be used <b>before</b> the other implementations,
+ you have to configure an ordinal &gt; 1000. That means, you have to addPropertyValue e.g. tamaya.ordinal=401 to
+ /META-INF/javaconfiguration.properties . Hint: In case of property files every file is handled as independent
+ config-source, but all of them have ordinal 400 by default (and can be reordered in a fine-grained manner.</p>
+
+ In cases where it is not possible to change a config sources ordinal value, you may have several options:
+ <ul>
+     <li>you can use a <a href="../../spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationBuilder</code></a> to redefine the source order and finally use
+     <a href="../../ConfigurationProvider.html#setConfiguration(org.apache.tamaya.Configuration)"><code>ConfigurationProvider.setConfiguration(Configuration)</code></a> to
+     change the current default <a href="../../Configuration.html" title="interface in org.apache.tamaya"><code>Configuration</code></a>.</li>
+     <li>finally, the implementor of this API may define alternate mechanism to reconfigure an ordinal
+     in a vendor specific way.</li>
+ </ul></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getOrdinal()">getOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the 'importance' aka ordinal of the configured values. The higher, the more important.</dd>
+</dl>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getName()">PropertySource</a></code></span></div>
+<div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
+ to ensure unique identity, either locally or remotely.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration's name, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#get(java.lang.String)">PropertySource</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
+ value is null, simply return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getProperties()">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="builder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>builder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a>&nbsp;builder()</pre>
+<div class="block">Builder builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html
new file mode 100644
index 0000000..bfbee5c
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html
@@ -0,0 +1,328 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>BuildablePropertySourceProvider.Builder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider.Builder class">
+<meta name="keywords" content="withPropertySourcs()">
+<meta name="keywords" content="build()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BuildablePropertySourceProvider.Builder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySourceProvider.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class BuildablePropertySourceProvider.Builder" class="title">Class BuildablePropertySourceProvider.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">BuildablePropertySourceProvider.Builder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">The type Builder.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build buildable property source.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withPropertySourcs(java.util.Collection)">withPropertySourcs</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code></th>
+<td class="colLast">
+<div class="block">With property sources builder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withPropertySourcs(org.apache.tamaya.spi.PropertySource...)">withPropertySourcs</a></span>&#8203;(<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">With propertySources.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="withPropertySourcs(org.apache.tamaya.spi.PropertySource...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withPropertySourcs</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a>&nbsp;withPropertySourcs&#8203;(<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</pre>
+<div class="block">With propertySources.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertySources</code> - the propertySources</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withPropertySourcs(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withPropertySourcs</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a>&nbsp;withPropertySourcs&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</pre>
+<div class="block">With property sources builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sources</code> - the property sources</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a>&nbsp;build()</pre>
+<div class="block">Build buildable property source.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the buildable property source</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySourceProvider.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html
new file mode 100644
index 0000000..78a4c03
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html
@@ -0,0 +1,443 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>BuildablePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider class">
+<meta name="keywords" content="getPropertySources()">
+<meta name="keywords" content="equals()">
+<meta name="keywords" content="hashCode()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="builder()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BuildablePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySourceProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class BuildablePropertySourceProvider" class="title">Class BuildablePropertySourceProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">BuildablePropertySourceProvider</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></pre>
+<div class="block">A Buildable property source.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">The type Builder.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySourceProvider">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></h3>
+<code><a href="../../spi/PropertySourceProvider.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BuildablePropertySourceProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builder builder.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertySources()">getPropertySources</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BuildablePropertySourceProvider</h4>
+<pre>public&nbsp;BuildablePropertySourceProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPropertySources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertySources</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;getPropertySources()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySourceProvider.html#getPropertySources()">getPropertySources</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>For each e.g. property file, we return a single PropertySource
+         or an empty createList if no PropertySource exists.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="builder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>builder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a>&nbsp;builder()</pre>
+<div class="block">Builder builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BuildablePropertySourceProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html
new file mode 100644
index 0000000..781b7de
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>CLIPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.CLIPropertySource class">
+<meta name="keywords" content="initMainArgs()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="toStringValues()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CLIPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CLIPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class CLIPropertySource" class="title">Class CLIPropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.CLIPropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">CLIPropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block">PropertySource that allows adding the program's main arguments as configuration entries. Unix syntax using '--' and
+ '-' params is supported.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CLIPropertySource</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.String...)">CLIPropertySource</a></span>&#8203;(int&nbsp;ordinal,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;args)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance, allows optionally to pass the main arguments.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String...)">CLIPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;args)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance, allows optionally to pass the main arguments.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initMainArgs(java.lang.String...)">initMainArgs</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;args)</code></th>
+<td class="colLast">
+<div class="block">Configure the main arguments, hereby parsing and mapping the main arguments into
+ configuration properties as key-createValue pairs.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toStringValues()">toStringValues</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#get(java.lang.String)">get</a>, <a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="BasePropertySource.html#getName()">getName</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIPropertySource</h4>
+<pre>public&nbsp;CLIPropertySource()</pre>
+<div class="block">Creates a new instance.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIPropertySource</h4>
+<pre>public&nbsp;CLIPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;args)</pre>
+<div class="block">Creates a new instance, allows optionally to pass the main arguments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>args</code> - the args, or null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLIPropertySource</h4>
+<pre>public&nbsp;CLIPropertySource&#8203;(int&nbsp;ordinal,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;args)</pre>
+<div class="block">Creates a new instance, allows optionally to pass the main arguments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>args</code> - the args, or null.</dd>
+<dd><code>ordinal</code> - the ordinal to be applied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="initMainArgs(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initMainArgs</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;initMainArgs&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;args)</pre>
+<div class="block">Configure the main arguments, hereby parsing and mapping the main arguments into
+ configuration properties as key-createValue pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>args</code> - the main arguments, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toStringValues()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toStringValues</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toStringValues()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#toStringValues()">toStringValues</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CLIPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html
new file mode 100644
index 0000000..0a1883a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html
@@ -0,0 +1,696 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>EnvironmentPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource class">
+<meta name="keywords" content="DEFAULT_ORDINAL">
+<meta name="keywords" content="getDefaultOrdinal()">
+<meta name="keywords" content="getName()">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="toStringValues()">
+<meta name="keywords" content="getPrefix()">
+<meta name="keywords" content="isDisabled()">
+<meta name="keywords" content="getChangeSupport()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnvironmentPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnvironmentPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class EnvironmentPropertySource" class="title">Class EnvironmentPropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">EnvironmentPropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block"><p><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> to access environment variables via Tamaya
+ which are setCurrent via <code>export VARIABLE=createValue</code> on UNIX systems or
+ <code>setCurrent VARIABLE=createValue</code> on Windows systems.</p>
+
+ <p>Using the <a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a> without any
+ additional configuration gives access to all existing environment
+ variables available to the Java process Tamaya is running in.</p>
+
+ <h1>Simple usage example</h1>
+
+ <pre>
+ $ export OPS_MODE=production
+ $ export COLOR=false
+ $ java -jar application.jar
+ </pre>
+
+ <p>To access <code>OPS_MODE</code> and <code>COLOR</code> with the following code
+ fragment could be used:</p>
+
+ <pre>
+ PropertySource ps = new EnvironmentPropertySource();
+ PropertyValue opsMode = ps.current("OPS_MODE");
+ PropertyValue color = ps.current("COLOR");
+ </pre>
+
+ <h1>Application specific environment variables with prefix</h1>
+
+ <p>Given the case where two instances of the same application are running on
+ a single machine but need different values for the environment variable
+ <code>CUSTOMER</code>. The <a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a> allows you
+ to prefix the environment variable with an application specific prefix
+ and to access it by the non-prefixed variable name.</p>
+
+ <pre>
+ $ export CUSTOMER=none
+ $ export a81.CUSTOMER=moon
+ $ export b78.CUSTOMER=luna
+ </pre>
+
+ <p>Given an environment with these three variables the application running
+ for the customer called Moon could be started with the following command:</p>
+
+ <pre>
+ $ java -Dtamaya.envprops.prefix=a81 -jar application.jar
+ </pre>
+
+ <p>The application specific createValue can now be accessed from the code of the
+ application like this:</p>
+
+ <pre>
+ PropertySource ps = new EnvironmentPropertySource();
+ PropertyValue pv = ps.current("CUSTOMER");
+ System.out.println(pv.getValue());
+ </pre>
+
+ <p>The output of application would be <code>moon</code>.</p>
+
+ <h1>Disabling the access to environment variables</h1>
+
+ <p>The access to environment variables can simply be
+ disabled by setting the system property <code>tamaya.envprops.disable</code>
+ or <code>tamaya.defaults.disable</code> to <code>true</code>.</p></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></span></code></th>
+<td class="colLast">
+<div class="block">Default ordinal for <a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>EnvironmentPropertySource</code></a></div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">EnvironmentPropertySource</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">EnvironmentPropertySource</a></span>&#8203;(int&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance using a fixed ordinal createValue.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">EnvironmentPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">EnvironmentPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix,
+                         int&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultOrdinal()">getDefaultOrdinal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the property source.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrefix()">getPrefix</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDisabled()">isDisabled</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toStringValues()">toStringValues</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_ORDINAL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_ORDINAL</h4>
+<pre>public static final&nbsp;int DEFAULT_ORDINAL</pre>
+<div class="block">Default ordinal for <a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><code>EnvironmentPropertySource</code></a></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource.DEFAULT_ORDINAL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EnvironmentPropertySource</h4>
+<pre>public&nbsp;EnvironmentPropertySource()</pre>
+<div class="block">Creates a new instance. Also initializes the <code>prefix</code> and <code>disabled</code> properties
+ from the system-/ environment properties:
+ <pre>
+     tamaya.envprops.prefix
+     tamaya.envprops.disable
+ </pre></div>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EnvironmentPropertySource</h4>
+<pre>public&nbsp;EnvironmentPropertySource&#8203;(int&nbsp;ordinal)</pre>
+<div class="block">Creates a new instance using a fixed ordinal createValue.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ordinal</code> - the ordinal number.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EnvironmentPropertySource</h4>
+<pre>public&nbsp;EnvironmentPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix,
+                                 int&nbsp;ordinal)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>prefix</code> - the prefix to be used, or null.</dd>
+<dd><code>ordinal</code> - the ordinal to be used.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EnvironmentPropertySource</h4>
+<pre>public&nbsp;EnvironmentPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>prefix</code> - the prefix to be used, or null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getDefaultOrdinal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultOrdinal</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultOrdinal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="BasePropertySource.html#getDefaultOrdinal()">BasePropertySource</a></code></span></div>
+<div class="block">Returns the  default ordinal used, when no ordinal is setCurrent, or the ordinal was not parseable to an int createValue.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the  default ordinal used, by default 0.</dd>
+</dl>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getName()">PropertySource</a></code></span></div>
+<div class="block">Get the name of the property source. The name should be unique for the type of source, whereas the id is used
+ to ensure unique identity, either locally or remotely.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getName()">getName</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configuration's name, never <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#get(java.lang.String)">PropertySource</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
+ value is null, simply return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toStringValues()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toStringValues</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toStringValues()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#toStringValues()">toStringValues</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPrefix()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrefix</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPrefix()</pre>
+</li>
+</ul>
+<a id="isDisabled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDisabled</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isDisabled()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#isDisabled()">isDisabled</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnvironmentPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html
new file mode 100644
index 0000000..943c484
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html
@@ -0,0 +1,558 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>JavaConfigurationPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource class">
+<meta name="keywords" content="DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">
+<meta name="keywords" content="DEFAULT_XML_PROPERTIES_FILE_NAME">
+<meta name="keywords" content="isEnabled()">
+<meta name="keywords" content="setEnabled()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="toString()">
+<meta name="keywords" content="init()">
+<meta name="keywords" content="getClassLoader()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="JavaConfigurationPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/JavaConfigurationPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class JavaConfigurationPropertySource" class="title">Class JavaConfigurationPropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code>, <code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">JavaConfigurationPropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a>
+implements <a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></pre>
+<div class="block">Provider which reads all <a href="#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+ classpath. By setting
+ <code>tamaya.defaultprops.disable</code> or <code>tamaya.defaults.disable</code>
+ as system or environment property this feature can be disabled.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</a></span></code></th>
+<td class="colLast">
+<div class="block">Default location in the classpath, where Tamaya looks for simple line based configuration by default.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_XML_PROPERTIES_FILE_NAME">DEFAULT_XML_PROPERTIES_FILE_NAME</a></span></code></th>
+<td class="colLast">
+<div class="block">Default location in the classpath, where Tamaya looks for XML based configuration by default.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">JavaConfigurationPropertySource</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassLoader()">getClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the currently assigned cassloader instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(java.lang.ClassLoader)">init</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</code></th>
+<td class="colLast">
+<div class="block">Initializes this instance with the classloader to be used.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnabled()">isEnabled</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEnabled(boolean)">setEnabled</a></span>&#8203;(boolean&nbsp;enabled)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#get(java.lang.String)">get</a>, <a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="BasePropertySource.html#getName()">getName</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toStringValues()">toStringValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DEFAULT_SIMPLE_PROPERTIES_FILE_NAME</pre>
+<div class="block">Default location in the classpath, where Tamaya looks for simple line based configuration by default.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource.DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DEFAULT_XML_PROPERTIES_FILE_NAME">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_XML_PROPERTIES_FILE_NAME</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DEFAULT_XML_PROPERTIES_FILE_NAME</pre>
+<div class="block">Default location in the classpath, where Tamaya looks for XML based configuration by default.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource.DEFAULT_XML_PROPERTIES_FILE_NAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JavaConfigurationPropertySource</h4>
+<pre>public&nbsp;JavaConfigurationPropertySource()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isEnabled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEnabled</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isEnabled()</pre>
+</li>
+</ul>
+<a id="setEnabled(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEnabled</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setEnabled&#8203;(boolean&nbsp;enabled)</pre>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getProperties()">getProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="init(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;init&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;classLoader)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ClassloaderAware.html#init(java.lang.ClassLoader)">ClassloaderAware</a></code></span></div>
+<div class="block">Initializes this instance with the classloader to be used.
+ This method is called by the implementation when the instance is loaded
+ through the <a href="../../spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><code>ServiceContextManager</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ClassloaderAware.html#init(java.lang.ClassLoader)">init</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classLoader</code> - the target classloader, not not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClassLoader()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getClassLoader</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;getClassLoader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/ClassloaderAware.html#getClassLoader()">ClassloaderAware</a></code></span></div>
+<div class="block">Get the currently assigned cassloader instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/ClassloaderAware.html#getClassLoader()">getClassLoader</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the classloader, never null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/JavaConfigurationPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/MapPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/MapPropertySource.html
new file mode 100644
index 0000000..e56f4d2
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/MapPropertySource.html
@@ -0,0 +1,547 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>MapPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.MapPropertySource class">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getMap()">
+<meta name="keywords" content="getChangeSupport()">
+<meta name="keywords" content="getPrefix()">
+<meta name="keywords" content="setPrefix()">
+<meta name="keywords" content="mapProperties()">
+<meta name="keywords" content="toStringValues()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MapPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MapPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class MapPropertySource" class="title">Class MapPropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.MapPropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">MapPropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block">Simple <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> implementation that just takes a Map and an (optional) priority.
+ Optionally the entries passed can be mapped to a different rootContext.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Map)">MapPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Map,java.lang.String)">MapPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority, but applying a custom mapping <code>prefix</code> to the entries provided.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Properties,java.lang.String)">MapPropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink">Properties</a>&nbsp;props,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority, but applying a custom mapping <code>rootContext</code> to the entries provided.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMap(java.util.Properties)">getMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink">Properties</a>&nbsp;props)</code></th>
+<td class="colLast">
+<div class="block">Simple method to convert <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a> into a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrefix()">getPrefix</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapProperties(java.util.Map,long)">mapProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props,
+             long&nbsp;timestamp)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPrefix(java.lang.String)">setPrefix</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toStringValues()">toStringValues</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#get(java.lang.String)">get</a>, <a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="BasePropertySource.html#getName()">getName</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MapPropertySource</h4>
+<pre>public&nbsp;MapPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props)</pre>
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - unique name of this source.</dd>
+<dd><code>props</code> - the properties</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Properties,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MapPropertySource</h4>
+<pre>public&nbsp;MapPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink">Properties</a>&nbsp;props,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</pre>
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority, but applying a custom mapping <code>rootContext</code> to the entries provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - unique name of this source.</dd>
+<dd><code>props</code> - the properties</dd>
+<dd><code>prefix</code> - the prefix context mapping, or null (for no mapping).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Map,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MapPropertySource</h4>
+<pre>public&nbsp;MapPropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</pre>
+<div class="block">Creates a new instance, hereby using the default mechanism for evaluating the property source's
+ priority, but applying a custom mapping <code>prefix</code> to the entries provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - unique name of this source.</dd>
+<dd><code>props</code> - the properties</dd>
+<dd><code>prefix</code> - the prefix context mapping, or null (for no mapping).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMap(java.util.Properties)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMap</h4>
+<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink">Properties</a>&nbsp;props)</pre>
+<div class="block">Simple method to convert <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Properties</code></a> into a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>props</code> - the properties, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding Map instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPrefix()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrefix</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPrefix()</pre>
+</li>
+</ul>
+<a id="setPrefix(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrefix</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setPrefix&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</pre>
+</li>
+</ul>
+<a id="mapProperties(java.util.Map,long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mapProperties</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;mapProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;props,
+                                                        long&nbsp;timestamp)</pre>
+</li>
+</ul>
+<a id="toStringValues()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toStringValues</h4>
+<pre class="methodSignature">protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toStringValues()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#toStringValues()">toStringValues</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MapPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html
new file mode 100644
index 0000000..71968ed
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html
@@ -0,0 +1,553 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>PropertiesResourcePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource class">
+<meta name="keywords" content="addChangeListener()">
+<meta name="keywords" content="removeChangeListener()">
+<meta name="keywords" content="removeAllChangeListeners()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getVersion()">
+<meta name="keywords" content="getChangeSupport()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PropertiesResourcePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertiesResourcePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class PropertiesResourcePropertySource" class="title">Class PropertiesResourcePropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">PropertiesResourcePropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block">Simple <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, with a fixed ordinal that reads a .properties file from a given URL.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">PropertiesResourcePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.ClassLoader)">PropertiesResourcePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;cl)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URL)">PropertiesResourcePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;url)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URL,java.lang.String)">PropertiesResourcePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;url,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Add a change listener for this properrty source.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current version.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAllChangeListeners()">removeAllChangeListeners</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Removes all registered change listeners, if any.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</code></th>
+<td class="colLast">
+<div class="block">Removes a change listener for this properrty source.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#get(java.lang.String)">get</a>, <a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="BasePropertySource.html#getName()">getName</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toString()">toString</a>, <a href="BasePropertySource.html#toStringValues()">toStringValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#isScannable()">isScannable</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.net.URL)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PropertiesResourcePropertySource</h4>
+<pre>public&nbsp;PropertiesResourcePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;url)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>url</code> - the resource URL, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.net.URL,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PropertiesResourcePropertySource</h4>
+<pre>public&nbsp;PropertiesResourcePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;url,
+                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;prefix)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>prefix</code> - the (optional) prefix context for mapping (prefixing) the properties loaded.</dd>
+<dd><code>url</code> - the resource URL, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PropertiesResourcePropertySource</h4>
+<pre>public&nbsp;PropertiesResourcePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the resource path, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PropertiesResourcePropertySource</h4>
+<pre>public&nbsp;PropertiesResourcePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassLoader</a>&nbsp;cl)</pre>
+<div class="block">Creates a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the resource path, not null.</dd>
+<dd><code>cl</code> - the class loader.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="addChangeListener(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addChangeListener</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addChangeListener&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">PropertySource</a></code></span></div>
+<div class="block">Add a change listener for this properrty source.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>l</code> - the listner, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeChangeListener(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeChangeListener</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeChangeListener&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;,&#8203;<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;l)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">PropertySource</a></code></span></div>
+<div class="block">Removes a change listener for this properrty source.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>l</code> - the listner, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeAllChangeListeners()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeAllChangeListeners</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeAllChangeListeners()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#removeAllChangeListeners()">PropertySource</a></code></span></div>
+<div class="block">Removes all registered change listeners, if any.</div>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getVersion()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getVersion()">PropertySource</a></code></span></div>
+<div class="block">Get the current version. A new version signals that it is known that properties have changed for this property
+ source. This is especially useful, when <a href="../../spi/PropertySource.html#getChangeSupport()"><code>PropertySource.getChangeSupport()</code></a> is <a href="../../spi/ChangeSupport.html#SUPPORTED"><code>ChangeSupport.SUPPORTED</code></a>.
+ The content and format of the version String is imeplemtation specific. We recommend to addPropertyValue information
+ such as the loading timestamp, the source systems read or whatever is appropriate. By default this
+ method returns <code>"N/A"</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the version this property source, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PropertiesResourcePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html
new file mode 100644
index 0000000..3f74bd1
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html
@@ -0,0 +1,484 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>SimplePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.SimplePropertySource.Builder class">
+<meta name="keywords" content="withUuidName()">
+<meta name="keywords" content="withName()">
+<meta name="keywords" content="withOrdinal()">
+<meta name="keywords" content="withDefaultOrdinal()">
+<meta name="keywords" content="withProperties()">
+<meta name="keywords" content="withProperty()">
+<meta name="keywords" content="build()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimplePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimplePropertySource.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class SimplePropertySource.Builder" class="title">Class SimplePropertySource.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.SimplePropertySource.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">SimplePropertySource.Builder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block"><code>SimplePropertySource</code> builder static inner class.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a <code>SimplePropertySource</code> built from the parameters previously setCurrent.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withDefaultOrdinal(int)">withDefaultOrdinal</a></span>&#8203;(int&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>defaultOrdinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withName(java.lang.String)">withName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>name</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withOrdinal(int)">withOrdinal</a></span>&#8203;(int&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>ordinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperties(java.io.File)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)</code></th>
+<td class="colLast">
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperties(java.net.URL)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperties(java.util.Map)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withProperty(java.lang.String,java.lang.String)">withProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withUuidName()">withUuidName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>name</code> to a new UUID and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="withUuidName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withUuidName</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withUuidName()</pre>
+<div class="block">Sets the <code>name</code> to a new UUID and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withName</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withName&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Sets the <code>name</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the <code>name</code> to setCurrent, not null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withOrdinal(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withOrdinal</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withOrdinal&#8203;(int&nbsp;val)</pre>
+<div class="block">Sets the <code>ordinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>val</code> - the <code>ordinal</code> to setCurrent</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withDefaultOrdinal(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withDefaultOrdinal</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withDefaultOrdinal&#8203;(int&nbsp;val)</pre>
+<div class="block">Sets the <code>defaultOrdinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>val</code> - the <code>defaultOrdinal</code> to setCurrent</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperties(java.net.URL)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;resource)</pre>
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the <code>resource</code> to read</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperties(java.io.File)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)</pre>
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>file</code> - the <code>file</code> to read from (xml or properties format).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperties(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withProperties&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;val)</pre>
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>val</code> - the <code>properties</code> to setCurrent</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="withProperty(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withProperty</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;withProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</pre>
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the <code>properties</code> key to setCurrent</dd>
+<dd><code>val</code> - the <code>properties</code> createValue to setCurrent</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a reference to this Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a>&nbsp;build()</pre>
+<div class="block">Returns a <code>SimplePropertySource</code> built from the parameters previously setCurrent.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>SimplePropertySource</code> built with parameters of this <code>SimplePropertySource.Builder</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimplePropertySource.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html
new file mode 100644
index 0000000..f90608b
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>SimplePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.SimplePropertySource class">
+<meta name="keywords" content="newBuilder()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getChangeSupport()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimplePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimplePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class SimplePropertySource" class="title">Class SimplePropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.SimplePropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">SimplePropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block">Simple implementation of a <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
+ simple property files and XML property files.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>SimplePropertySource</code> builder static inner class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.io.File)">SimplePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;propertiesLocation)</code></th>
+<td class="colLast">
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.net.URL)">SimplePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;propertiesLocation)</code></th>
+<td class="colLast">
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Map)">SimplePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">Creates a new Properties based PropertySource based on the given properties mapProperties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Map,int)">SimplePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties,
+                    int&nbsp;defaultOrdinal)</code></th>
+<td class="colLast">
+<div class="block">Creates a new Properties based PropertySource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URL)">SimplePropertySource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;propertiesLocation)</code></th>
+<td class="colLast">
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBuilder()">newBuilder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#get(java.lang.String)">get</a>, <a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="BasePropertySource.html#getName()">getName</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toString()">toString</a>, <a href="BasePropertySource.html#toStringValues()">toStringValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#getVersion()">getVersion</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.io.File)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimplePropertySource</h4>
+<pre>public&nbsp;SimplePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;propertiesLocation)</pre>
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertiesLocation</code> - the URL encoded location, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.net.URL)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimplePropertySource</h4>
+<pre>public&nbsp;SimplePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;propertiesLocation)</pre>
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>propertiesLocation</code> - the URL encoded location, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Map,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimplePropertySource</h4>
+<pre>public&nbsp;SimplePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties,
+                            int&nbsp;defaultOrdinal)</pre>
+<div class="block">Creates a new Properties based PropertySource.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the property source name, not null.</dd>
+<dd><code>properties</code> - the properties, not null</dd>
+<dd><code>defaultOrdinal</code> - the default ordinal</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimplePropertySource</h4>
+<pre>public&nbsp;SimplePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties)</pre>
+<div class="block">Creates a new Properties based PropertySource based on the given properties mapProperties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name, not null.</dd>
+<dd><code>properties</code> - the properties, not null.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.net.URL)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimplePropertySource</h4>
+<pre>public&nbsp;SimplePropertySource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;propertiesLocation)</pre>
+<div class="block">Creates a new Properties based PropertySource based on the given URL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The property source name</dd>
+<dd><code>propertiesLocation</code> - the URL encoded location, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newBuilder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a>&nbsp;newBuilder()</pre>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimplePropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html
new file mode 100644
index 0000000..8bee5ce
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html
@@ -0,0 +1,529 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>SystemPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource.SystemPropertySource class">
+<meta name="keywords" content="DEFAULT_ORDINAL">
+<meta name="keywords" content="get()">
+<meta name="keywords" content="reload()">
+<meta name="keywords" content="getProperties()">
+<meta name="keywords" content="getVersion()">
+<meta name="keywords" content="getChangeSupport()">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></div>
+<h2 title="Class SystemPropertySource" class="title">Class SystemPropertySource</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource.BasePropertySource</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.tamaya.spisupport.propertysource.SystemPropertySource</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">SystemPropertySource</span>
+extends <a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></pre>
+<div class="block">This <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties. You can disable this feature by
+ setting <code>tamaya.envprops.disable</code> or <code>tamaya.defaults.disable</code>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_ORDINAL">DEFAULT_ORDINAL</a></span></code></th>
+<td class="colLast">
+<div class="block">default ordinal used.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#EMPTY">EMPTY</a>, <a href="../../spi/PropertySource.html#TAMAYA_ORDINAL">TAMAYA_ORDINAL</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SystemPropertySource</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">SystemPropertySource</a></span>&#8203;(int&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance using a fixed ordinal createValue.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Access a property.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChangeSupport()">getChangeSupport</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the support for reporting changes to property sources provided by this instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the current properties as Set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current version.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reload()">reload</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spisupport.propertysource.BasePropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></h3>
+<code><a href="BasePropertySource.html#equals(java.lang.Object)">equals</a>, <a href="BasePropertySource.html#getDefaultOrdinal()">getDefaultOrdinal</a>, <a href="BasePropertySource.html#getName()">getName</a>, <a href="BasePropertySource.html#getOrdinal()">getOrdinal</a>, <a href="BasePropertySource.html#hashCode()">hashCode</a>, <a href="BasePropertySource.html#isDisabled()">isDisabled</a>, <a href="BasePropertySource.html#setChangeSupport(org.apache.tamaya.spi.ChangeSupport)">setChangeSupport</a>, <a href="BasePropertySource.html#setDefaultOrdinal(java.lang.Integer)">setDefaultOrdinal</a>, <a href="BasePropertySource.html#setDisabled(boolean)">setDisabled</a>, <a href="BasePropertySource.html#setName(java.lang.String)">setName</a>, <a href="BasePropertySource.html#setOrdinal(java.lang.Integer)">setOrdinal</a>, <a href="BasePropertySource.html#toString()">toString</a>, <a href="BasePropertySource.html#toStringValues()">toStringValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.apache.tamaya.spi.PropertySource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></h3>
+<code><a href="../../spi/PropertySource.html#addChangeListener(java.util.function.BiConsumer)">addChangeListener</a>, <a href="../../spi/PropertySource.html#isScannable()">isScannable</a>, <a href="../../spi/PropertySource.html#removeAllChangeListeners()">removeAllChangeListeners</a>, <a href="../../spi/PropertySource.html#removeChangeListener(java.util.function.BiConsumer)">removeChangeListener</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_ORDINAL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_ORDINAL</h4>
+<pre>public static final&nbsp;int DEFAULT_ORDINAL</pre>
+<div class="block">default ordinal used.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.tamaya.spisupport.propertysource.SystemPropertySource.DEFAULT_ORDINAL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SystemPropertySource</h4>
+<pre>public&nbsp;SystemPropertySource()</pre>
+<div class="block">Creates a new instance. Also initializes the <code>prefix</code> and <code>disabled</code> properties
+ from the system-/ environment properties:
+ <pre>
+     tamaya.envprops.prefix
+     tamaya.envprops.disable
+ </pre></div>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SystemPropertySource</h4>
+<pre>public&nbsp;SystemPropertySource&#8203;(int&nbsp;ordinal)</pre>
+<div class="block">Creates a new instance using a fixed ordinal createValue.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ordinal</code> - the ordinal number.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#get(java.lang.String)">PropertySource</a></code></span></div>
+<div class="block">Access a property.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#get(java.lang.String)">get</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the property's key, not <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value mapProperties, where <code>mapProperties.current(key) == value</code>, including also any metadata. In case a
+ value is null, simply return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="reload()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reload</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;reload()</pre>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;getProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getProperties()">PropertySource</a></code></span></div>
+<div class="block">Access the current properties as Set. The resulting Map may not return all items accessible, e.g.
+ when the underlying storage does not support iteration of its entries.
+     <code>null</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the corresponding mapProperties, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getVersion()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getVersion()">PropertySource</a></code></span></div>
+<div class="block">Get the current version. A new version signals that it is known that properties have changed for this property
+ source. This is especially useful, when <a href="../../spi/PropertySource.html#getChangeSupport()"><code>PropertySource.getChangeSupport()</code></a> is <a href="../../spi/ChangeSupport.html#SUPPORTED"><code>ChangeSupport.SUPPORTED</code></a>.
+ The content and format of the version String is imeplemtation specific. We recommend to addPropertyValue information
+ such as the loading timestamp, the source systems read or whatever is appropriate. By default this
+ method returns <code>"N/A"</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the version this property source, never null.</dd>
+</dl>
+</li>
+</ul>
+<a id="getChangeSupport()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getChangeSupport</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi">ChangeSupport</a>&nbsp;getChangeSupport()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../spi/PropertySource.html#getChangeSupport()">PropertySource</a></code></span></div>
+<div class="block">Get the support for reporting changes to property sources provided by this instance. This support
+ type should never change during a property source's lifetime.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../spi/PropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in interface&nbsp;<code><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="BasePropertySource.html#getChangeSupport()">getChangeSupport</a></code>&nbsp;in class&nbsp;<code><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the change support of this property source, not null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPropertySource.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BasePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BasePropertySource.html
new file mode 100644
index 0000000..a60e8a2
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BasePropertySource.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.BasePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.BasePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.BasePropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.BasePropertySource</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.examples.custompropertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a> in <a href="../../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a> in <a href="../../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource">SimplePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">A simple PropertySource class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">PropertySource that allows adding the program's main arguments as configuration entries.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> to access environment variables via Tamaya
+ which are setCurrent via <code>export VARIABLE=createValue</code> on UNIX systems or
+ <code>setCurrent VARIABLE=createValue</code> on Windows systems.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Provider which reads all <a href="../JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="../JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+ classpath.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Simple <a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> implementation that just takes a Map and an (optional) priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Simple <a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, with a fixed ordinal that reads a .properties file from a given URL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">Simple implementation of a <a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
+ simple property files and XML property files.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></span></code></th>
+<td class="colLast">
+<div class="block">This <a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySource.Builder.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySource.Builder.html
new file mode 100644
index 0000000..0b7fc72
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySource.Builder.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySource.Builder" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.BuildablePropertySource.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.html#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builder builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#but()">but</a></span>()</code></th>
+<td class="colLast">
+<div class="block">But builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withName(java.lang.String)">withName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">With name builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withOrdinal(int)">withOrdinal</a></span>&#8203;(int&nbsp;ordinal)</code></th>
+<td class="colLast">
+<div class="block">With ordinal builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withProperties(java.util.Map,java.lang.String)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withProperties(java.util.Map)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withProperties(org.apache.tamaya.spi.PropertyValue...)">withProperties</a></span>&#8203;(<a href="../../../spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">With properties builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withSimpleProperties(java.util.Map)">withSimpleProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">With simple properties builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withSimpleProperty(java.lang.String,java.lang.String)">withSimpleProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">With simple property builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withSimpleProperty(java.lang.String,java.lang.String,java.lang.String)">withSimpleProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">With simple property builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#withSource(java.lang.String)">withSource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;source)</code></th>
+<td class="colLast">
+<div class="block">With source builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySource.html
new file mode 100644
index 0000000..2e522fa
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySource.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.BuildablePropertySource</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySource.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build buildable property source.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySourceProvider.Builder.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySourceProvider.Builder.html
new file mode 100644
index 0000000..6f1f200
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySourceProvider.Builder.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider.Builder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider.Builder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider.Builder" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.</span><code><span class="memberNameLink"><a href="../BuildablePropertySourceProvider.html#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builder builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySourceProvider.Builder.html#withPropertySourcs(java.util.Collection)">withPropertySourcs</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt;&nbsp;sources)</code></th>
+<td class="colLast">
+<div class="block">With property sources builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySourceProvider.Builder.html#withPropertySourcs(org.apache.tamaya.spi.PropertySource...)">withPropertySourcs</a></span>&#8203;(<a href="../../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>...&nbsp;propertySources)</code></th>
+<td class="colLast">
+<div class="block">With propertySources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySourceProvider.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySourceProvider.html
new file mode 100644
index 0000000..1115ec3
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/BuildablePropertySourceProvider.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.BuildablePropertySourceProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BuildablePropertySourceProvider.Builder.</span><code><span class="memberNameLink"><a href="../BuildablePropertySourceProvider.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build buildable property source.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/CLIPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/CLIPropertySource.html
new file mode 100644
index 0000000..8d03111
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/CLIPropertySource.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.CLIPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.CLIPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.CLIPropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.CLIPropertySource</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.propertysource.CLIPropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/EnvironmentPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/EnvironmentPropertySource.html
new file mode 100644
index 0000000..f27a83a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/EnvironmentPropertySource.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.propertysource.EnvironmentPropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/JavaConfigurationPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/JavaConfigurationPropertySource.html
new file mode 100644
index 0000000..b3b8132
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/JavaConfigurationPropertySource.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.propertysource.JavaConfigurationPropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/MapPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/MapPropertySource.html
new file mode 100644
index 0000000..1661351
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/MapPropertySource.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.MapPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.MapPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.MapPropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.MapPropertySource</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.propertysource.MapPropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/PropertiesResourcePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/PropertiesResourcePropertySource.html
new file mode 100644
index 0000000..1188129
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/PropertiesResourcePropertySource.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.propertysource.PropertiesResourcePropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SimplePropertySource.Builder.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SimplePropertySource.Builder.html
new file mode 100644
index 0000000..b00089a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SimplePropertySource.Builder.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.SimplePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.SimplePropertySource.Builder (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.SimplePropertySource.Builder" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.SimplePropertySource.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.html#newBuilder()">newBuilder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withDefaultOrdinal(int)">withDefaultOrdinal</a></span>&#8203;(int&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>defaultOrdinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withName(java.lang.String)">withName</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>name</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withOrdinal(int)">withOrdinal</a></span>&#8203;(int&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>ordinal</code> and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withProperties(java.io.File)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)</code></th>
+<td class="colLast">
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withProperties(java.net.URL)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink">URL</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Reads the <code>properties</code> from the given resource and returns a reference
+ to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withProperties(java.util.Map)">withProperties</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withProperty(java.lang.String,java.lang.String)">withProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>properties</code> and returns a reference to this Builder so that the methods can be chained together.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#withUuidName()">withUuidName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Sets the <code>name</code> to a new UUID and returns a reference to this Builder so that the methods
+ can be chained together.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SimplePropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SimplePropertySource.html
new file mode 100644
index 0000000..40db78d
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SimplePropertySource.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.SimplePropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.SimplePropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.SimplePropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.SimplePropertySource</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a> in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.apache.tamaya.spisupport.propertysource</a> that return <a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SimplePropertySource.Builder.</span><code><span class="memberNameLink"><a href="../SimplePropertySource.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a <code>SimplePropertySource</code> built from the parameters previously setCurrent.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SystemPropertySource.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SystemPropertySource.html
new file mode 100644
index 0000000..42e2947
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/class-use/SystemPropertySource.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Class org.apache.tamaya.spisupport.propertysource.SystemPropertySource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.tamaya.spisupport.propertysource.SystemPropertySource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.apache.tamaya.spisupport.propertysource.SystemPropertySource" class="title">Uses of Class<br>org.apache.tamaya.spisupport.propertysource.SystemPropertySource</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.tamaya.spisupport.propertysource.SystemPropertySource</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-summary.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-summary.html
new file mode 100644
index 0000000..9bfb17a
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-summary.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.tamaya.spisupport.propertysource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="keywords" content="org.apache.tamaya.spisupport.propertysource package">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.tamaya.spisupport.propertysource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.tamaya.spisupport.propertysource</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></th>
+<td class="colLast">
+<div class="block">Abstract <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
+ ordinal is provided with the config.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></th>
+<td class="colLast">
+<div class="block">A Buildable property source.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></th>
+<td class="colLast">
+<div class="block">The type Builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></th>
+<td class="colLast">
+<div class="block">A Buildable property source.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></th>
+<td class="colLast">
+<div class="block">The type Builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">CLIPropertySource</a></th>
+<td class="colLast">
+<div class="block">PropertySource that allows adding the program's main arguments as configuration entries.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">EnvironmentPropertySource</a></th>
+<td class="colLast">
+<div class="block"><a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> to access environment variables via Tamaya
+ which are setCurrent via <code>export VARIABLE=createValue</code> on UNIX systems or
+ <code>setCurrent VARIABLE=createValue</code> on Windows systems.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">JavaConfigurationPropertySource</a></th>
+<td class="colLast">
+<div class="block">Provider which reads all <a href="JavaConfigurationPropertySource.html#DEFAULT_SIMPLE_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.properties"</a> and
+ <a href="JavaConfigurationPropertySource.html#DEFAULT_XML_PROPERTIES_FILE_NAME">"META-INF/javaconfiguration.xml"</a> files found in the
+ classpath.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">MapPropertySource</a></th>
+<td class="colLast">
+<div class="block">Simple <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> implementation that just takes a Map and an (optional) priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">PropertiesResourcePropertySource</a></th>
+<td class="colLast">
+<div class="block">Simple <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a>, with a fixed ordinal that reads a .properties file from a given URL.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></th>
+<td class="colLast">
+<div class="block">Simple implementation of a <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
+ simple property files and XML property files.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></th>
+<td class="colLast">
+<div class="block"><code>SimplePropertySource</code> builder static inner class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource">SystemPropertySource</a></th>
+<td class="colLast">
+<div class="block">This <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> manages the system properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-tree.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-tree.html
new file mode 100644
index 0000000..ea47e41
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-tree.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.tamaya.spisupport.propertysource Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.tamaya.spisupport.propertysource Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.tamaya.spisupport.propertysource</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)
+<ul>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">CLIPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">EnvironmentPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">JavaConfigurationPropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">MapPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">PropertiesResourcePropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SystemPropertySource</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySource.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySourceProvider</span></a> (implements org.apache.tamaya.spi.<a href="../../spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySourceProvider.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SimplePropertySource.Builder</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-use.html b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-use.html
new file mode 100644
index 0000000..279a894
--- /dev/null
+++ b/apidocs/stable/org/apache/tamaya/spisupport/propertysource/package-use.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="de">
+<head>
+<!-- Generated by javadoc -->
+<title>Uses of Package org.apache.tamaya.spisupport.propertysource (Apache Tamaya Base 0.4-incubating API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.tamaya.spisupport.propertysource (Apache Tamaya Base 0.4-incubating API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.apache.tamaya.spisupport.propertysource" class="title">Uses of Package<br>org.apache.tamaya.spisupport.propertysource</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.examples.custompropertysource">org.apache.tamaya.examples.custompropertysource</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.apache.tamaya.spisupport.propertysource">org.apache.tamaya.spisupport.propertysource</a></th>
+<td class="colLast">
+<div class="block">Contains internal implementations artifacts registered as services.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.examples.custompropertysource">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a> used by <a href="../../examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BasePropertySource.html#org.apache.tamaya.examples.custompropertysource">BasePropertySource</a></th>
+<td class="colLast">
+<div class="block">Abstract <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
+ ordinal is provided with the config.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.propertysource">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a> used by <a href="package-summary.html">org.apache.tamaya.spisupport.propertysource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BasePropertySource.html#org.apache.tamaya.spisupport.propertysource">BasePropertySource</a></th>
+<td class="colLast">
+<div class="block">Abstract <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> that allows setting a default ordinal to be used, if no
+ ordinal is provided with the config.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/BuildablePropertySource.html#org.apache.tamaya.spisupport.propertysource">BuildablePropertySource</a></th>
+<td class="colLast">
+<div class="block">A Buildable property source.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BuildablePropertySource.Builder.html#org.apache.tamaya.spisupport.propertysource">BuildablePropertySource.Builder</a></th>
+<td class="colLast">
+<div class="block">The type Builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/BuildablePropertySourceProvider.html#org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider</a></th>
+<td class="colLast">
+<div class="block">A Buildable property source.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BuildablePropertySourceProvider.Builder.html#org.apache.tamaya.spisupport.propertysource">BuildablePropertySourceProvider.Builder</a></th>
+<td class="colLast">
+<div class="block">The type Builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SimplePropertySource.html#org.apache.tamaya.spisupport.propertysource">SimplePropertySource</a></th>
+<td class="colLast">
+<div class="block">Simple implementation of a <a href="../../spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> for
+ simple property files and XML property files.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SimplePropertySource.Builder.html#org.apache.tamaya.spisupport.propertysource">SimplePropertySource.Builder</a></th>
+<td class="colLast">
+<div class="block"><code>SimplePropertySource</code> builder static inner class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/stable/overview-summary.html b/apidocs/stable/overview-summary.html
index a22efd0..ae9dbbf 100644
--- a/apidocs/stable/overview-summary.html
+++ b/apidocs/stable/overview-summary.html
@@ -1,171 +1,23 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
-<!-- Generated by javadoc -->
+<!-- Generated by javadoc (11) on Sun Nov 17 00:32:28 CET 2019 -->
+<title>Apache Tamaya Base 0.4-incubating API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Overview (Apache Tamaya Base 0.3-incubating API)</title>
-<meta name="keywords" content="Overview, Apache Tamaya Base 0.3-incubating API">
+<script type="text/javascript">window.location.replace('index.html')</script>
+<noscript>
+<meta http-equiv="Refresh" content="0;index.html">
+</noscript>
+<link rel="canonical" href="index.html">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-<script type="text/javascript" src="script.js"></script>
 </head>
 <body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Overview (Apache Tamaya Base 0.3-incubating API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
+<main role="main">
 <noscript>
-<div>JavaScript is disabled on your browser.</div>
+<p>JavaScript is disabled on your browser.</p>
 </noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li class="navBarCell1Rev">Overview</li>
-<li>Package</li>
-<li>Class</li>
-<li>Use</li>
-<li><a href="overview-tree.html">Tree</a></li>
-<li><a href="deprecated-list.html">Deprecated</a></li>
-<li><a href="index-all.html">Index</a></li>
-<li><a href="help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
-<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h1 class="title">Apache Tamaya Base 0.3-incubating API</h1>
-</div>
-<div class="contentContainer">
-<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
-<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Package</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="org/apache/tamaya/package-summary.html">org.apache.tamaya</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/tamaya/core/package-summary.html">org.apache.tamaya.core</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="org/apache/tamaya/core/internal/package-summary.html">org.apache.tamaya.core.internal</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/tamaya/core/internal/converters/package-summary.html">org.apache.tamaya.core.internal.converters</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="org/apache/tamaya/core/propertysource/package-summary.html">org.apache.tamaya.core.propertysource</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/tamaya/examples/custompropertysource/package-summary.html">org.apache.tamaya.examples.custompropertysource</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a href="org/apache/tamaya/examples/minimal/package-summary.html">org.apache.tamaya.examples.minimal</a></td>
-<td class="colLast">
-<div class="block">Example to show the simplest ways to use Tamaya with
- the standard configuration file.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/tamaya/spi/package-summary.html">org.apache.tamaya.spi</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li class="navBarCell1Rev">Overview</li>
-<li>Package</li>
-<li>Class</li>
-<li>Use</li>
-<li><a href="overview-tree.html">Tree</a></li>
-<li><a href="deprecated-list.html">Deprecated</a></li>
-<li><a href="index-all.html">Index</a></li>
-<li><a href="help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
-<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+<p><a href="index.html">index.html</a></p>
+</main>
 </body>
 </html>
diff --git a/apidocs/stable/overview-tree.html b/apidocs/stable/overview-tree.html
index e05c8d3..da7c653 100644
--- a/apidocs/stable/overview-tree.html
+++ b/apidocs/stable/overview-tree.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Class Hierarchy (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Class Hierarchy (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Class Hierarchy (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Class Hierarchy (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
-<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,11 +76,23 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 class="title">Hierarchy For All Packages</h1>
 <span class="packageHierarchyLabel">Package Hierarchies:</span>
@@ -80,115 +104,186 @@
 <li><a href="org/apache/tamaya/core/propertysource/package-tree.html">org.apache.tamaya.core.propertysource</a>, </li>
 <li><a href="org/apache/tamaya/examples/custompropertysource/package-tree.html">org.apache.tamaya.examples.custompropertysource</a>, </li>
 <li><a href="org/apache/tamaya/examples/minimal/package-tree.html">org.apache.tamaya.examples.minimal</a>, </li>
-<li><a href="org/apache/tamaya/spi/package-tree.html">org.apache.tamaya.spi</a></li>
+<li><a href="org/apache/tamaya/spi/package-tree.html">org.apache.tamaya.spi</a>, </li>
+<li><a href="org/apache/tamaya/spisupport/package-tree.html">org.apache.tamaya.spisupport</a>, </li>
+<li><a href="org/apache/tamaya/spisupport/propertysource/package-tree.html">org.apache.tamaya.spisupport.propertysource</a></li>
 </ul>
 </div>
 <div class="contentContainer">
+<section role="region">
 <h2 title="Class Hierarchy">Class Hierarchy</h2>
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)
+<li class="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BasePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BasePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)
 <ul>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">CLIPropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">EnvironmentPropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">JavaConfigurationPropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.core.propertysource.<a href="org/apache/tamaya/core/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.core.propertysource"><span class="typeNameLink">SystemPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/CLIPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">CLIPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/EnvironmentPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">EnvironmentPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/JavaConfigurationPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">JavaConfigurationPropertySource</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi">ClassloaderAware</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/MapPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">MapPropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/PropertiesResourcePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">PropertiesResourcePropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySource.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SimplePropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SystemPropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SystemPropertySource</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigDecimalConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigIntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BooleanConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ByteConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CharConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ClassConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigurationProvider</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext.Builder</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CurrencyConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfiguration.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfiguration</span></a> (implements org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationContext</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationContextBuilder</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationContextBuilder</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigurationProvider.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigurationProvider</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultConfigValueEvaluator</span></a> (implements org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal">ConfigValueEvaluator</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/DefaultServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">DefaultServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DoubleConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/EnumConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">EnumConverter</span></a>&lt;T&gt; (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FileConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">FilterContext</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FloatConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">IntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LongConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.examples.minimal.<a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal"><span class="typeNameLink">Main</span></a></li>
-<li type="circle">org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Main</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">NumberConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core"><span class="typeNameLink">OSGIActivator</span></a> (implements org.osgi.framework.BundleActivator)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceLoader</span></a> (implements org.osgi.framework.BundleListener)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">PathConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PriorityServiceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PriorityServiceComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyConverterManager.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyConverterManager</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyFilterComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertyFiltering.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertyFiltering</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">PropertySourceComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueBuilder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValueBuilder</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/ReflectionUtil.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">ReflectionUtil</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContextManager</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ShortConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySourceProvider</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a>)</li>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigDecimalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigDecimalConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BigIntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BigIntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/BooleanConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">BooleanConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySource</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySource.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySourceProvider</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/BuildablePropertySourceProvider.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">BuildablePropertySourceProvider.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ByteConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ByteConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CharConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CharConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ClassConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ClassConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationProvider.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigurationProvider</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConversionContext.Builder.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ConversionContext.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationProvider.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfigurationProvider</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi">ConfigurationProviderSpi</a>)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/CurrencyConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">CurrencyConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfiguration</span></a> (implements org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya">Configuration</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<li class="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfiguration</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationBuilder.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationBuilder</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi">ConfigurationBuilder</a>)
 <ul>
-<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">RuntimeException</span></a>
+<li class="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/CoreConfigurationBuilder.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">CoreConfigurationBuilder</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationContext</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigurationSnapshot</span></a> (implements org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya">ConfigurationSnapshot</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultConfigValueEvaluator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultConfigValueEvaluator</span></a> (implements org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport">ConfigValueEvaluator</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultMetaDataProvider.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultMetaDataProvider</span></a> (implements org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultPropertySourceSnapshot</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/DefaultServiceContext.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">DefaultServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DoubleConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DoubleConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/DurationConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">DurationConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/EnumConverter.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">EnumConverter</span></a>&lt;T&gt; (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FileConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FileConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/FilterContext.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">FilterContext</span></a></li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/FloatConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">FloatConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/InstantConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">InstantConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/IntegerConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">IntegerConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalDateConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalDateTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LocalTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LocalTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/LongConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">LongConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/Main.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">Main</span></a></li>
+<li class="circle">org.apache.tamaya.examples.minimal.<a href="org/apache/tamaya/examples/minimal/Main.html" title="class in org.apache.tamaya.examples.minimal"><span class="typeNameLink">Main</span></a></li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/MonthDayConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">MonthDayConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/NumberConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">NumberConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OffsetDateTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OffsetTimeConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OffsetTimeConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/OptionalConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">OptionalConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.<a href="org/apache/tamaya/core/OSGIActivator.html" title="class in org.apache.tamaya.core"><span class="typeNameLink">OSGIActivator</span></a> (implements org.osgi.framework.BundleActivator)</li>
+<li class="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceContext.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceContext</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a>)</li>
+<li class="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/OSGIServiceLoader.html" title="class in org.apache.tamaya.core.internal"><span class="typeNameLink">OSGIServiceLoader</span></a> (implements org.osgi.framework.BundleListener)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/PathConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">PathConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PriorityServiceComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyConverterManager</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyFilterComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertyFiltering.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertyFiltering</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceChangeSupport.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertySourceChangeSupport</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">PropertySourceComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
 <ul>
-<li type="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigException</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ListValue</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ObjectValue</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ReflectionUtil.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">ReflectionUtil</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/RegexPropertyFilter.html" title="class in org.apache.tamaya.spisupport"><span class="typeNameLink">RegexPropertyFilter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>)</li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContextManager.html" title="class in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContextManager</span></a></li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/ShortConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">ShortConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.spisupport.propertysource.<a href="org/apache/tamaya/spisupport/propertysource/SimplePropertySource.Builder.html" title="class in org.apache.tamaya.spisupport.propertysource"><span class="typeNameLink">SimplePropertySource.Builder</span></a></li>
+<li class="circle">org.apache.tamaya.examples.custompropertysource.<a href="org/apache/tamaya/examples/custompropertysource/SimplePropertySourceProvider.html" title="class in org.apache.tamaya.examples.custompropertysource"><span class="typeNameLink">SimplePropertySourceProvider</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi">PropertySourceProvider</a>)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/SupplierConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">SupplierConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya"><span class="typeNameLink">ConfigException</span></a></li>
 </ul>
 </li>
 </ul>
 </li>
 </ul>
 </li>
-<li type="circle">org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">TypeLiteral</span></a>&lt;T&gt; (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URIConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URLConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya"><span class="typeNameLink">TypeLiteral</span></a>&lt;T&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URIConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URIConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/URLConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">URLConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">YearConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
+<li class="circle">org.apache.tamaya.core.internal.converters.<a href="org/apache/tamaya/core/internal/converters/YearMonthConverter.html" title="class in org.apache.tamaya.core.internal.converters"><span class="typeNameLink">YearMonthConverter</span></a> (implements org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi">PropertyConverter</a>&lt;T&gt;)</li>
 </ul>
 </li>
 </ul>
+</section>
+<section role="region">
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigOperator</span></a></li>
-<li type="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigQuery</span></a>&lt;T&gt;</li>
-<li type="circle">org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Configuration</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContext</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContextBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContextBuilder</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationProviderSpi</span></a></li>
-<li type="circle">org.apache.tamaya.core.internal.<a href="org/apache/tamaya/core/internal/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.core.internal"><span class="typeNameLink">ConfigValueEvaluator</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyConverter</span></a>&lt;T&gt;</li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyFilter</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySource</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySourceProvider</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValueCombinationPolicy.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValueCombinationPolicy</span></a></li>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ClassloaderAware.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ClassloaderAware</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ServiceContext</span></a></li>
 </ul>
+</li>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigOperator.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigOperator</span></a></li>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigQuery.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigQuery</span></a>&lt;T&gt;</li>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/Configuration.html" title="interface in org.apache.tamaya"><span class="typeNameLink">Configuration</span></a>
+<ul>
+<li class="circle">org.apache.tamaya.<a href="org/apache/tamaya/ConfigurationSnapshot.html" title="interface in org.apache.tamaya"><span class="typeNameLink">ConfigurationSnapshot</span></a></li>
+</ul>
+</li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationBuilder.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationBuilder</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationContext</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ConfigurationProviderSpi.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">ConfigurationProviderSpi</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/ConfigValueEvaluator.html" title="interface in org.apache.tamaya.spisupport"><span class="typeNameLink">ConfigValueEvaluator</span></a></li>
+<li class="circle">org.apache.tamaya.spisupport.<a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport"><span class="typeNameLink">MetadataProvider</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyConverter</span></a>&lt;T&gt;</li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertyFilter</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySource</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertySourceProvider.html" title="interface in org.apache.tamaya.spi"><span class="typeNameLink">PropertySourceProvider</span></a></li>
+</ul>
+</section>
+<section role="region">
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
 <ul>
-<li type="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Experimental</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/Experimental.html" title="annotation in org.apache.tamaya.spi"><span class="typeNameLink">Experimental</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
 </ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/ChangeSupport.html" title="enum in org.apache.tamaya.spi"><span class="typeNameLink">ChangeSupport</span></a></li>
+<li class="circle">org.apache.tamaya.spi.<a href="org/apache/tamaya/spi/PropertyValue.ValueType.html" title="enum in org.apache.tamaya.spi"><span class="typeNameLink">PropertyValue.ValueType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -199,16 +294,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
-<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -221,11 +308,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/package-search-index.js b/apidocs/stable/package-search-index.js
new file mode 100644
index 0000000..be0d857
--- /dev/null
+++ b/apidocs/stable/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"org.apache.tamaya"},{"l":"org.apache.tamaya.core"},{"l":"org.apache.tamaya.core.internal"},{"l":"org.apache.tamaya.core.internal.converters"},{"l":"org.apache.tamaya.core.propertysource"},{"l":"org.apache.tamaya.examples.custompropertysource"},{"l":"org.apache.tamaya.examples.minimal"},{"l":"org.apache.tamaya.spi"},{"l":"org.apache.tamaya.spisupport"},{"l":"org.apache.tamaya.spisupport.propertysource"}]
\ No newline at end of file
diff --git a/apidocs/stable/package-search-index.zip b/apidocs/stable/package-search-index.zip
new file mode 100644
index 0000000..28d4a2b
--- /dev/null
+++ b/apidocs/stable/package-search-index.zip
Binary files differ
diff --git a/apidocs/stable/resources/glass.png b/apidocs/stable/resources/glass.png
new file mode 100644
index 0000000..a7f591f
--- /dev/null
+++ b/apidocs/stable/resources/glass.png
Binary files differ
diff --git a/apidocs/stable/resources/x.png b/apidocs/stable/resources/x.png
new file mode 100644
index 0000000..30548a7
--- /dev/null
+++ b/apidocs/stable/resources/x.png
Binary files differ
diff --git a/apidocs/stable/script.js b/apidocs/stable/script.js
index b346356..0eaaf53 100644
--- a/apidocs/stable/script.js
+++ b/apidocs/stable/script.js
@@ -1,9 +1,114 @@
-function show(type)
-{
+/*
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+    createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
+    createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
+    if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
+            window.navigator.userAgent.indexOf('Edge/') > 0) {
+        createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
+    }
+    createElem(doc, tag, 'search.js');
+    
+    $.get(pathtoroot + "module-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "package-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "type-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "member-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "tag-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText());
+                });
+            });
+    if (!moduleSearchIndex) {
+        createElem(doc, tag, 'module-search-index.js');
+    }
+    if (!packageSearchIndex) {
+        createElem(doc, tag, 'package-search-index.js');
+    }
+    if (!typeSearchIndex) {
+        createElem(doc, tag, 'type-search-index.js');
+    }
+    if (!memberSearchIndex) {
+        createElem(doc, tag, 'member-search-index.js');
+    }
+    if (!tagSearchIndex) {
+        createElem(doc, tag, 'tag-search-index.js');
+    }
+    $(window).resize(function() {
+        $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+    });
+}
+
+function createElem(doc, tag, path) {
+    var script = doc.createElement(tag);
+    var scriptElement = doc.getElementsByTagName(tag)[0];
+    script.src = pathtoroot + path;
+    scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(type) {
     count = 0;
-    for (var key in methods) {
+    for (var key in data) {
         var row = document.getElementById(key);
-        if ((methods[key] &  type) != 0) {
+        if ((data[key] &  type) !== 0) {
             row.style.display = '';
             row.className = (count++ % 2) ? rowColor : altColor;
         }
@@ -13,8 +118,7 @@
     updateTabs(type);
 }
 
-function updateTabs(type)
-{
+function updateTabs(type) {
     for (var value in tabs) {
         var sNode = document.getElementById(tabs[value][0]);
         var spanNode = sNode.firstChild;
@@ -28,3 +132,8 @@
         }
     }
 }
+
+function updateModuleFrame(pFrame, cFrame) {
+    top.packageFrame.location = pFrame;
+    top.classFrame.location = cFrame;
+}
diff --git a/apidocs/stable/search.js b/apidocs/stable/search.js
new file mode 100644
index 0000000..9d3fb81
--- /dev/null
+++ b/apidocs/stable/search.js
@@ -0,0 +1,329 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var noResult = {l: "No results found"};
+var catModules = "Modules";
+var catPackages = "Packages";
+var catTypes = "Types";
+var catMembers = "Members";
+var catSearchTags = "SearchTags";
+var highlight = "<span class=\"resultHighlight\">$&</span>";
+var camelCaseRegexp = "";
+var secondaryMatcher = "";
+function getHighlightedText(item) {
+    var ccMatcher = new RegExp(camelCaseRegexp);
+    var label = item.replace(ccMatcher, highlight);
+    if (label === item) {
+        label = item.replace(secondaryMatcher, highlight);
+    }
+    return label;
+}
+function getURLPrefix(ui) {
+    var urlPrefix="";
+    if (useModuleDirectories) {
+        var slash = "/";
+        if (ui.item.category === catModules) {
+            return ui.item.l + slash;
+        } else if (ui.item.category === catPackages && ui.item.m) {
+            return ui.item.m + slash;
+        } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
+            $.each(packageSearchIndex, function(index, item) {
+                if (ui.item.p == item.l) {
+                    urlPrefix = item.m + slash;
+                }
+            });
+            return urlPrefix;
+        } else {
+            return urlPrefix;
+        }
+    }
+    return urlPrefix;
+}
+var watermark = 'Search';
+$(function() {
+    $("#search").val('');
+    $("#search").prop("disabled", false);
+    $("#reset").prop("disabled", false);
+    $("#search").val(watermark).addClass('watermark');
+    $("#search").blur(function() {
+        if ($(this).val().length == 0) {
+            $(this).val(watermark).addClass('watermark');
+        }
+    });
+    $("#search").on('click keydown', function() {
+        if ($(this).val() == watermark) {
+            $(this).val('').removeClass('watermark');
+        }
+    });
+    $("#reset").click(function() {
+        $("#search").val('');
+        $("#search").focus();
+    });
+    $("#search").focus();
+    $("#search")[0].setSelectionRange(0, 0);
+});
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+    _create: function() {
+        this._super();
+        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
+    },
+    _renderMenu: function(ul, items) {
+        var rMenu = this,
+                currentCategory = "";
+        $.each(items, function(index, item) {
+            var li;
+            if (item.l !== noResult.l && item.category !== currentCategory) {
+                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
+                currentCategory = item.category;
+            }
+            li = rMenu._renderItemData(ul, item);
+            if (item.category) {
+                li.attr("aria-label", item.category + " : " + item.l);
+                li.attr("class", "resultItem");
+            } else {
+                li.attr("aria-label", item.l);
+                li.attr("class", "resultItem");
+            }
+        });
+    },
+    _renderItem: function(ul, item) {
+        var label = "";
+        if (item.category === catModules) {
+            label = getHighlightedText(item.l);
+        } else if (item.category === catPackages) {
+            label = (item.m)
+                    ? getHighlightedText(item.m + "/" + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catTypes) {
+            label = (item.p)
+                    ? getHighlightedText(item.p + "." + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catMembers) {
+            label = getHighlightedText(item.p + "." + (item.c + "." + item.l));
+        } else if (item.category === catSearchTags) {
+            label = getHighlightedText(item.l);
+        } else {
+            label = item.l;
+        }
+        $li = $("<li/>").appendTo(ul);
+        if (item.category === catSearchTags) {
+            if (item.d) {
+                $("<a/>").attr("href", "#")
+                        .html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span><br><span class=\"searchTagDescResult\">"
+                                + item.d + "</span><br>")
+                        .appendTo($li);
+            } else {
+                $("<a/>").attr("href", "#")
+                        .html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span>")
+                        .appendTo($li);
+            }
+        } else {
+            $("<a/>").attr("href", "#")
+                    .html(label)
+                    .appendTo($li);
+        }
+        return $li;
+    }
+});
+$(function() {
+    $("#search").catcomplete({
+        minLength: 1,
+        delay: 100,
+        source: function(request, response) {
+            var result = new Array();
+            var presult = new Array();
+            var tresult = new Array();
+            var mresult = new Array();
+            var tgresult = new Array();
+            var secondaryresult = new Array();
+            var displayCount = 0;
+            var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i");
+            camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)");
+            var camelCaseMatcher = new RegExp("^" + camelCaseRegexp);
+            secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
+
+            // Return the nested innermost name from the specified object
+            function nestedName(e) {
+                return e.l.substring(e.l.lastIndexOf(".") + 1);
+            }
+
+            function concatResults(a1, a2) {
+                a1 = a1.concat(a2);
+                a2.length = 0;
+                return a1;
+            }
+
+            if (moduleSearchIndex) {
+                var mdleCount = 0;
+                $.each(moduleSearchIndex, function(index, item) {
+                    item.category = catModules;
+                    if (exactMatcher.test(item.l)) {
+                        result.push(item);
+                        mdleCount++;
+                    } else if (camelCaseMatcher.test(item.l)) {
+                        result.push(item);
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                displayCount = mdleCount;
+                result = concatResults(result, secondaryresult);
+            }
+            if (packageSearchIndex) {
+                var pCount = 0;
+                var pkg = "";
+                $.each(packageSearchIndex, function(index, item) {
+                    item.category = catPackages;
+                    pkg = (item.m)
+                            ? (item.m + "/" + item.l)
+                            : item.l;
+                    if (exactMatcher.test(item.l)) {
+                        presult.push(item);
+                        pCount++;
+                    } else if (camelCaseMatcher.test(pkg)) {
+                        presult.push(item);
+                    } else if (secondaryMatcher.test(pkg)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(presult, secondaryresult));
+                displayCount = (pCount > displayCount) ? pCount : displayCount;
+            }
+            if (typeSearchIndex) {
+                var tCount = 0;
+                $.each(typeSearchIndex, function(index, item) {
+                    item.category = catTypes;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        tresult.push(item);
+                        tCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        tresult.push(item);
+                    } else if (secondaryMatcher.test(item.p + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tresult, secondaryresult));
+                displayCount = (tCount > displayCount) ? tCount : displayCount;
+            }
+            if (memberSearchIndex) {
+                var mCount = 0;
+                $.each(memberSearchIndex, function(index, item) {
+                    item.category = catMembers;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        mresult.push(item);
+                        mCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        mresult.push(item);
+                    } else if (secondaryMatcher.test(item.c + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(mresult, secondaryresult));
+                displayCount = (mCount > displayCount) ? mCount : displayCount;
+            }
+            if (tagSearchIndex) {
+                var tgCount = 0;
+                $.each(tagSearchIndex, function(index, item) {
+                    item.category = catSearchTags;
+                    if (exactMatcher.test(item.l)) {
+                        tgresult.push(item);
+                        tgCount++;
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tgresult, secondaryresult));
+                displayCount = (tgCount > displayCount) ? tgCount : displayCount;
+            }
+            displayCount = (displayCount > 500) ? displayCount : 500;
+            var counter = function() {
+                var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0};
+                var f = function(item) {
+                    count[item.category] += 1;
+                    return (count[item.category] <= displayCount);
+                };
+                return f;
+            }();
+            response(result.filter(counter));
+        },
+        response: function(event, ui) {
+            if (!ui.content.length) {
+                ui.content.push(noResult);
+            } else {
+                $("#search").empty();
+            }
+        },
+        autoFocus: true,
+        position: {
+            collision: "flip"
+        },
+        select: function(event, ui) {
+            if (ui.item.l !== noResult.l) {
+                var url = getURLPrefix(ui);
+                if (ui.item.category === catModules) {
+                    if (useModuleDirectories) {
+                        url += "module-summary.html";
+                    } else {
+                        url = ui.item.l + "-summary.html";
+                    }
+                } else if (ui.item.category === catPackages) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else {
+                    url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
+                    }
+                } else if (ui.item.category === catTypes) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.l + ".html";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
+                    }
+                } else if (ui.item.category === catMembers) {
+                    if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.c + ".html" + "#";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
+                    }
+                    if (ui.item.url) {
+                        url += ui.item.url;
+                    } else {
+                        url += ui.item.l;
+                    }
+                } else if (ui.item.category === catSearchTags) {
+                    url += ui.item.u;
+                }
+                if (top !== window) {
+                    parent.classFrame.location = pathtoroot + url;
+                } else {
+                    window.location.href = pathtoroot + url;
+                }
+            }
+        }
+    });
+});
diff --git a/apidocs/stable/serialized-form.html b/apidocs/stable/serialized-form.html
index 7e1cae7..8045bb2 100644
--- a/apidocs/stable/serialized-form.html
+++ b/apidocs/stable/serialized-form.html
@@ -1,37 +1,51 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE HTML>
 <!-- NewPage -->
 <html lang="de">
 <head>
 <!-- Generated by javadoc -->
+<title>Serialized Form (Apache Tamaya Base 0.4-incubating API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Serialized Form (Apache Tamaya Base 0.3-incubating API)</title>
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Serialized Form (Apache Tamaya Base 0.3-incubating API)";
+            parent.document.title="Serialized Form (Apache Tamaya Base 0.4-incubating API)";
         }
     }
     catch(err) {
     }
 //-->
-</script>
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
 <noscript>
 <div>JavaScript is disabled on your browser.</div>
 </noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
 <!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
+<div class="topNav"><a id="navbar.top">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
+<a id="navbar.top.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -42,16 +56,14 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
-<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -64,32 +76,45 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.top">
+<a id="skip.navbar.top">
 <!--   -->
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
 <div class="header">
 <h1 title="Serialized Form" class="title">Serialized Form</h1>
 </div>
 <div class="serializedFormContainer">
 <ul class="blockList">
 <li class="blockList">
+<section role="region">
 <h2 title="Package">Package&nbsp;org.apache.tamaya</h2>
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.ConfigException">
+<li class="blockList"><a id="org.apache.tamaya.ConfigException">
 <!--   -->
 </a>
-<h3>Class <a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">org.apache.tamaya.ConfigException</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a> implements Serializable</h3>
+<h3>Class <a href="org/apache/tamaya/ConfigException.html" title="class in org.apache.tamaya">org.apache.tamaya.ConfigException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
 <dl class="nameValue">
 <dt>serialVersionUID:</dt>
 <dd>-5886094818057522680L</dd>
 </dl>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.TypeLiteral">
+<li class="blockList"><a id="org.apache.tamaya.TypeLiteral">
 <!--   -->
 </a>
-<h3>Class <a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">org.apache.tamaya.TypeLiteral</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<h3>Class <a href="org/apache/tamaya/TypeLiteral.html" title="class in org.apache.tamaya">org.apache.tamaya.TypeLiteral</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
 <dl class="nameValue">
 <dt>serialVersionUID:</dt>
 <dd>1L</dd>
@@ -100,7 +125,7 @@
 <ul class="blockList">
 <li class="blockListLast">
 <h4>definedType</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> definedType</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a> definedType</pre>
 <div class="block">The current defined type.</div>
 </li>
 </ul>
@@ -108,37 +133,233 @@
 </ul>
 </li>
 </ul>
+</section>
 </li>
 <li class="blockList">
+<section role="region">
 <h2 title="Package">Package&nbsp;org.apache.tamaya.core.internal</h2>
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.core.internal.PropertyFilterComparator">
+<li class="blockList"><a id="org.apache.tamaya.core.internal.CoreConfiguration">
 <!--   -->
 </a>
-<h3>Class <a href="org/apache/tamaya/core/internal/PropertyFilterComparator.html" title="class in org.apache.tamaya.core.internal">org.apache.tamaya.core.internal.PropertyFilterComparator</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<h3>Class <a href="org/apache/tamaya/core/internal/CoreConfiguration.html" title="class in org.apache.tamaya.core.internal">org.apache.tamaya.core.internal.CoreConfiguration</a> extends <a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a> implements Serializable</h3>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;org.apache.tamaya.spi</h2>
+<ul class="blockList">
+<li class="blockList"><a id="org.apache.tamaya.spi.ListValue">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spi/ListValue.html" title="class in org.apache.tamaya.spi">org.apache.tamaya.spi.ListValue</a> extends <a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> implements Serializable</h3>
 <dl class="nameValue">
 <dt>serialVersionUID:</dt>
 <dd>1L</dd>
 </dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>list</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt; list</pre>
+<div class="block">List of child properties.</div>
 </li>
-<li class="blockList"><a name="org.apache.tamaya.core.internal.PropertySourceComparator">
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spi.ObjectValue">
 <!--   -->
 </a>
-<h3>Class <a href="org/apache/tamaya/core/internal/PropertySourceComparator.html" title="class in org.apache.tamaya.core.internal">org.apache.tamaya.core.internal.PropertySourceComparator</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<h3>Class <a href="org/apache/tamaya/spi/ObjectValue.html" title="class in org.apache.tamaya.spi">org.apache.tamaya.spi.ObjectValue</a> extends <a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> implements Serializable</h3>
 <dl class="nameValue">
 <dt>serialVersionUID:</dt>
 <dd>1L</dd>
 </dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>fields</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt; fields</pre>
+<div class="block">List of child properties.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spi.PropertyValue">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">org.apache.tamaya.spi.PropertyValue</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>2L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>immutable</h4>
+<pre>boolean immutable</pre>
+<div class="block">Flag to mark a createValue as immutable.</div>
+</li>
+<li class="blockList">
+<h4>key</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> key</pre>
+<div class="block">The requested key.</div>
+</li>
+<li class="blockList">
+<h4>metaEntries</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt; metaEntries</pre>
+<div class="block">Additional metadata provided by the provider.</div>
+</li>
+<li class="blockList">
+<h4>parent</h4>
+<pre><a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a> parent</pre>
+<div class="block">The parent value, null if it's a root value.</div>
+</li>
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> value</pre>
+<div class="block">The createValue.</div>
+</li>
+<li class="blockListLast">
+<h4>version</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic" class="externalLink">AtomicInteger</a> version</pre>
+<div class="block">The createValue version, used for determining config changes.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;org.apache.tamaya.spisupport</h2>
+<ul class="blockList">
+<li class="blockList"><a id="org.apache.tamaya.spisupport.DefaultConfiguration">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.DefaultConfiguration</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>readObject</h4>
+<pre class="methodSignature">private&nbsp;void&nbsp;readObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">ObjectInputStream</a>&nbsp;ois)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassNotFoundException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassNotFoundException</a></code></dd>
+</dl>
+</li>
+<li class="blockListLast">
+<h4>writeObject</h4>
+<pre class="methodSignature">private&nbsp;void&nbsp;writeObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">ObjectOutputStream</a>&nbsp;oos)
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
+</dl>
 </li>
 </ul>
 </li>
 <li class="blockList">
-<h2 title="Package">Package&nbsp;org.apache.tamaya.spi</h2>
+<h3>Serialized Fields</h3>
 <ul class="blockList">
-<li class="blockList"><a name="org.apache.tamaya.spi.PropertyValue">
+<li class="blockListLast">
+<h4>configurationContext</h4>
+<pre><a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi">ConfigurationContext</a> configurationContext</pre>
+<div class="block">The current <a href="org/apache/tamaya/spi/ConfigurationContext.html" title="interface in org.apache.tamaya.spi"><code>ConfigurationContext</code></a> of the current instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.DefaultConfigurationContext">
 <!--   -->
 </a>
-<h3>Class <a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">org.apache.tamaya.spi.PropertyValue</a> extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<h3>Class <a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.DefaultConfigurationContext</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialization Methods</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>readObject</h4>
+<pre class="methodSignature">private&nbsp;void&nbsp;readObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">ObjectInputStream</a>&nbsp;ois)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassNotFoundException</a></pre>
+<div class="block">Deserialization only reads the property source snapshots from the stream. Converters, filters,
+ meta data provider and the service context are reinitialized based on the current environment.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if the stream is corrupted</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang" class="externalLink">ClassNotFoundException</a></code> - if s property source class cannot be serialized.</dd>
+</dl>
+</li>
+<li class="blockListLast">
+<h4>writeObject</h4>
+<pre class="methodSignature">private&nbsp;void&nbsp;writeObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">ObjectOutputStream</a>&nbsp;oos)
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>immutablePropertyFilters</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi">PropertyFilter</a>&gt; immutablePropertyFilters</pre>
+<div class="block">The current unmodifiable createList of loaded <a href="org/apache/tamaya/spi/PropertyFilter.html" title="interface in org.apache.tamaya.spi"><code>PropertyFilter</code></a> instances.</div>
+</li>
+<li class="blockList">
+<h4>immutablePropertySources</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi">PropertySource</a>&gt; immutablePropertySources</pre>
+<div class="block">The current unmodifiable createList of loaded <a href="org/apache/tamaya/spi/PropertySource.html" title="interface in org.apache.tamaya.spi"><code>PropertySource</code></a> instances.</div>
+</li>
+<li class="blockList">
+<h4>metaDataProvider</h4>
+<pre><a href="org/apache/tamaya/spisupport/MetadataProvider.html" title="interface in org.apache.tamaya.spisupport">MetadataProvider</a> metaDataProvider</pre>
+</li>
+<li class="blockList">
+<h4>propertyConverterManager</h4>
+<pre><a href="org/apache/tamaya/spisupport/PropertyConverterManager.html" title="class in org.apache.tamaya.spisupport">PropertyConverterManager</a> propertyConverterManager</pre>
+<div class="block">Subcomponent handling <a href="org/apache/tamaya/spi/PropertyConverter.html" title="interface in org.apache.tamaya.spi"><code>PropertyConverter</code></a> instances.</div>
+</li>
+<li class="blockList">
+<h4>propertySourceLock</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks" class="externalLink">ReentrantReadWriteLock</a> propertySourceLock</pre>
+<div class="block">Lock for internal synchronization.</div>
+</li>
+<li class="blockListLast">
+<h4>serviceContext</h4>
+<pre><a href="org/apache/tamaya/spi/ServiceContext.html" title="interface in org.apache.tamaya.spi">ServiceContext</a> serviceContext</pre>
+<div class="block">The corresponding classLoader for this instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.DefaultConfigurationSnapshot">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spisupport/DefaultConfigurationSnapshot.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.DefaultConfigurationSnapshot</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
 <dl class="nameValue">
 <dt>serialVersionUID:</dt>
 <dd>1L</dd>
@@ -148,43 +369,125 @@
 <h3>Serialized Fields</h3>
 <ul class="blockList">
 <li class="blockList">
-<h4>key</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key</pre>
-<div class="block">The requested key.</div>
+<h4>context</h4>
+<pre><a href="org/apache/tamaya/spisupport/DefaultConfigurationContext.html" title="class in org.apache.tamaya.spisupport">DefaultConfigurationContext</a> context</pre>
 </li>
 <li class="blockList">
-<h4>value</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value</pre>
-<div class="block">The value.</div>
+<h4>frozenAt</h4>
+<pre>long frozenAt</pre>
 </li>
 <li class="blockList">
-<h4>source</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> source</pre>
-<div class="block">The source of the value.</div>
+<h4>id</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink">UUID</a> id</pre>
+</li>
+<li class="blockList">
+<h4>keys</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt; keys</pre>
 </li>
 <li class="blockListLast">
-<h4>metaEntries</h4>
-<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; metaEntries</pre>
-<div class="block">Additional metadata provided by the provider.</div>
+<h4>snapshot</h4>
+<pre><a href="org/apache/tamaya/spisupport/DefaultConfiguration.html" title="class in org.apache.tamaya.spisupport">DefaultConfiguration</a> snapshot</pre>
+<div class="block">The properties frozen.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spisupport/DefaultPropertySourceSnapshot.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.DefaultPropertySourceSnapshot</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6373137316556444171L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>frozenAt</h4>
+<pre>long frozenAt</pre>
+</li>
+<li class="blockList">
+<h4>keys</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt; keys</pre>
+</li>
+<li class="blockList">
+<h4>name</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> name</pre>
+<div class="block">The PropertySource's name.</div>
+</li>
+<li class="blockList">
+<h4>ordinal</h4>
+<pre>int ordinal</pre>
+<div class="block">The ordinal.</div>
+</li>
+<li class="blockListLast">
+<h4>properties</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="org/apache/tamaya/spi/PropertyValue.html" title="class in org.apache.tamaya.spi">PropertyValue</a>&gt; properties</pre>
+<div class="block">The properties read.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.PriorityServiceComparator">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spisupport/PriorityServiceComparator.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.PriorityServiceComparator</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.PropertyFilterComparator">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spisupport/PropertyFilterComparator.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.PropertyFilterComparator</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="org.apache.tamaya.spisupport.PropertySourceComparator">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/tamaya/spisupport/PropertySourceComparator.html" title="class in org.apache.tamaya.spisupport">org.apache.tamaya.spisupport.PropertySourceComparator</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>alternativeOrdinalKey</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> alternativeOrdinalKey</pre>
 </li>
 </ul>
 </li>
 </ul>
 </li>
 </ul>
+</section>
 </li>
 </ul>
 </div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
+<div class="bottomNav"><a id="navbar.bottom">
 <!--   -->
 </a>
 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
+<a id="navbar.bottom.firstrow">
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="overview-summary.html">Overview</a></li>
+<li><a href="index.html">Overview</a></li>
 <li>Package</li>
 <li>Class</li>
 <li>Use</li>
@@ -195,16 +498,8 @@
 </ul>
 </div>
 <div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
-<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -217,11 +512,16 @@
   }
   //-->
 </script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
 </div>
-<a name="skip.navbar.bottom">
+<a id="skip.navbar.bottom">
 <!--   -->
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2017 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2019 <a href="https://apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
+</footer>
 </body>
 </html>
diff --git a/apidocs/stable/stylesheet.css b/apidocs/stable/stylesheet.css
index 98055b2..fa24676 100644
--- a/apidocs/stable/stylesheet.css
+++ b/apidocs/stable/stylesheet.css
@@ -1,35 +1,51 @@
-/* Javadoc style sheet */
-/*
-Overall document style
-*/
+/* 
+ * Javadoc style sheet
+ */
 
 @import url('resources/fonts/dejavu.css');
 
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+
 body {
     background-color:#ffffff;
     color:#353833;
     font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
     font-size:14px;
     margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+}
+iframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+    overflow-y:scroll;
+    border:none;
 }
 a:link, a:visited {
     text-decoration:none;
     color:#4A6782;
 }
-a:hover, a:focus {
+a[href]:hover, a[href]:focus {
     text-decoration:none;
     color:#bb7a2a;
 }
-a:active {
-    text-decoration:none;
-    color:#4A6782;
-}
 a[name] {
     color:#353833;
 }
-a[name]:hover {
-    text-decoration:none;
-    color:#353833;
+a[name]:before, a[name]:target, a[id]:before, a[id]:target {
+    content:"";
+    display:inline-block;
+    position:relative;
+    padding-top:129px;
+    margin-top:-129px;
 }
 pre {
     font-family:'DejaVu Sans Mono', monospace;
@@ -78,9 +94,16 @@
 sup {
     font-size:8px;
 }
+
 /*
-Document title and Copyright styles
-*/
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
 .clear {
     clear:both;
     height:0px;
@@ -111,8 +134,8 @@
     font-weight:bold;
 }
 /*
-Navigation bar styles
-*/
+ * Styles for navigation bar.
+ */
 .bar {
     background-color:#4D7A97;
     color:#FFFFFF;
@@ -121,6 +144,15 @@
     font-size:11px;
     margin:0;
 }
+.navPadding {
+    padding-top: 107px;
+}
+.fixedNav {
+    position:fixed;
+    width:100%;
+    z-index:999;
+    background-color:#ffffff;
+}
 .topNav {
     background-color:#4D7A97;
     color:#FFFFFF;
@@ -170,7 +202,22 @@
     padding: 5px 6px;
     text-transform:uppercase;
 }
-ul.subNavList li{
+ul.navListSearch {
+    float:right;
+    margin:0 0 0 0;
+    padding:0;
+}
+ul.navListSearch li {
+    list-style:none;
+    float:right;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch li label {
+    position:relative;
+    right:-16px;
+}
+ul.subNavList li {
     list-style:none;
     float:left;
 }
@@ -196,21 +243,29 @@
     overflow:hidden;
 }
 /*
-Page header and footer styles
-*/
+ * Styles for page header and footer.
+ */
 .header, .footer {
     clear:both;
     margin:0 20px;
     padding:5px 0 0 0;
 }
-.indexHeader {
-    margin:10px;
+.indexNav {
     position:relative;
+    font-size:12px;
+    background-color:#dee3e9;
 }
-.indexHeader span{
-    margin-right:15px;
+.indexNav ul {
+    margin-top:0;
+    padding:5px;
 }
-.indexHeader h1 {
+.indexNav ul li {
+    display:inline;
+    list-style-type:none;
+    padding-right:10px;
+    text-transform:uppercase;
+}
+.indexNav h1 {
     font-size:13px;
 }
 .title {
@@ -232,8 +287,8 @@
     font-size:13px;
 }
 /*
-Heading styles
-*/
+ * Styles for headings.
+ */
 div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
     background-color:#dee3e9;
     border:1px solid #d0d9e0;
@@ -254,9 +309,10 @@
     padding:0px 0 20px 0;
 }
 /*
-Page layout container styles
-*/
-.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ * Styles for page layout containers.
+ */
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
+.allClassesContainer, .allPackagesContainer {
     clear:both;
     padding:10px 20px;
     position:relative;
@@ -287,7 +343,7 @@
 .contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
     margin:5px 0 10px 0px;
     font-size:14px;
-    font-family:'DejaVu Sans Mono',monospace;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
 }
 .serializedFormContainer dl.nameValue dt {
     margin-left:1px;
@@ -301,8 +357,11 @@
     display:inline;
 }
 /*
-List styles
-*/
+ * Styles for lists.
+ */
+li.circle {
+    list-style:circle;
+}
 ul.horizontal li {
     display:inline;
     font-size:0.9em;
@@ -355,19 +414,22 @@
     margin-bottom:1px;
 }
 /*
-Table styles
-*/
-.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+ * Styles for tables.
+ */
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
+.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
     width:100%;
+    border-spacing:0;
     border-left:1px solid #EEE; 
     border-right:1px solid #EEE; 
     border-bottom:1px solid #EEE; 
 }
-.overviewSummary, .memberSummary  {
+.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary  {
     padding:0px;
 }
 .overviewSummary caption, .memberSummary caption, .typeSummary caption,
-.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
+.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
     position:relative;
     text-align:left;
     background-repeat:no-repeat;
@@ -382,17 +444,31 @@
     white-space:pre;
 }
 .overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
-.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
+.usesSummary caption a:link,
 .overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
-.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
+.usesSummary caption a:hover,
 .overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
-.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
+.usesSummary caption a:active,
 .overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
-.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+.constantsSummary caption a:visited, .deprecatedSummary caption a:visited,
+.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
+.usesSummary caption a:visited {
     color:#FFFFFF;
 }
+.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active,
+.useSummary caption a:visited {
+    color:#1f389c;
+}
 .overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
-.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
+.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
+.usesSummary caption span {
     white-space:nowrap;
     padding-top:5px;
     padding-left:12px;
@@ -404,7 +480,8 @@
     border: none;
     height:16px;
 }
-.memberSummary caption span.activeTableTab span {
+.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,
+.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {
     white-space:nowrap;
     padding-top:5px;
     padding-left:12px;
@@ -415,7 +492,8 @@
     background-color:#F8981D;
     height:16px;
 }
-.memberSummary caption span.tableTab span {
+.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,
+.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {
     white-space:nowrap;
     padding-top:5px;
     padding-left:12px;
@@ -426,7 +504,10 @@
     background-color:#4D7A97;
     height:16px;
 }
-.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,
+.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,
+.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,
+.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {
     padding-top:0px;
     padding-left:0px;
     padding-right:0px;
@@ -435,14 +516,16 @@
     display:inline;
 }
 .overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
-.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
+.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
     display:none;
     width:5px;
     position:relative;
     float:left;
     background-color:#F8981D;
 }
-.memberSummary .activeTableTab .tabEnd {
+.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd,
+.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd {
     display:none;
     width:5px;
     margin-right:3px;
@@ -450,66 +533,88 @@
     float:left;
     background-color:#F8981D;
 }
-.memberSummary .tableTab .tabEnd {
+.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd,
+.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd {
     display:none;
     width:5px;
     margin-right:3px;
     position:relative;
     background-color:#4D7A97;
     float:left;
-
+}
+.rowColor th, .altColor th {
+    font-weight:normal;
 }
 .overviewSummary td, .memberSummary td, .typeSummary td,
-.useSummary td, .constantsSummary td, .deprecatedSummary td {
+.useSummary td, .constantsSummary td, .deprecatedSummary td,
+.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
     text-align:left;
     padding:0px 0px 12px 10px;
 }
-th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
-td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
+.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
+.constantsSummary td {
     vertical-align:top;
     padding-right:0px;
     padding-top:8px;
     padding-bottom:3px;
 }
-th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
+.packagesSummary th {
     background:#dee3e9;
     text-align:left;
     padding:8px 3px 3px 7px;
 }
 td.colFirst, th.colFirst {
-    white-space:nowrap;
     font-size:13px;
 }
-td.colLast, th.colLast {
+td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
     font-size:13px;
 }
-td.colOne, th.colOne {
+.constantsSummary th, .packagesSummary th {
+    font-size:13px;
+}
+.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
+.providesSummary td.colLast {
+    white-space:normal;
     font-size:13px;
 }
 .overviewSummary td.colFirst, .overviewSummary th.colFirst,
-.useSummary td.colFirst, .useSummary th.colFirst,
-.overviewSummary td.colOne, .overviewSummary th.colOne,
+.requiresSummary td.colFirst, .requiresSummary th.colFirst,
+.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
+.usesSummary td.colFirst, .usesSummary th.colFirst,
+.providesSummary td.colFirst, .providesSummary th.colFirst,
 .memberSummary td.colFirst, .memberSummary th.colFirst,
-.memberSummary td.colOne, .memberSummary th.colOne,
-.typeSummary td.colFirst{
-    width:25%;
+.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
+.typeSummary td.colFirst, .typeSummary th.colFirst {
     vertical-align:top;
 }
-td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+.packagesSummary th.colLast, .packagesSummary td.colLast {
+    white-space:normal;
+}
+td.colFirst a:link, td.colFirst a:visited,
+td.colSecond a:link, td.colSecond a:visited,
+th.colFirst a:link, th.colFirst a:visited,
+th.colSecond a:link, th.colSecond a:visited,
+th.colConstructorName a:link, th.colConstructorName a:visited,
+th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, 
+.constantValuesContainer td a:link, .constantValuesContainer td a:visited, 
+.allClassesContainer td a:link, .allClassesContainer td a:visited, 
+.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
     font-weight:bold;
 }
 .tableSubHeadingColor {
     background-color:#EEEEFF;
 }
-.altColor {
+.altColor, .altColor th {
     background-color:#FFFFFF;
 }
-.rowColor {
+.rowColor, .rowColor th {
     background-color:#EEEEEF;
 }
 /*
-Content styles
-*/
+ * Styles for contents.
+ */
 .description pre {
     margin-top:0;
 }
@@ -520,27 +625,22 @@
 .docSummary {
     padding:0;
 }
-
 ul.blockList ul.blockList ul.blockList li.blockList h3 {
     font-style:normal;
 }
-
 div.block {
     font-size:14px;
     font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
 }
-
 td.colLast div {
     padding-top:0px;
 }
-
-
 td.colLast a {
     padding-bottom:3px;
 }
 /*
-Formatting effect styles
-*/
+ * Styles for formatting effect.
+ */
 .sourceLineNo {
     color:green;
     padding:0 30px 0 0;
@@ -555,20 +655,252 @@
     margin:3px 10px 2px 0px;
     color:#474747;
 }
-.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
-.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
-.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
+.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
+.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
+.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
     font-weight:bold;
 }
 .deprecationComment, .emphasizedPhrase, .interfaceName {
     font-style:italic;
 }
-
-div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+.deprecationBlock {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    border-style:solid;
+    border-width:thin;
+    border-radius:10px;
+    padding:10px;
+    margin-bottom:10px;
+    margin-right:10px;
+    display:inline-block;
+}
+div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
 div.block div.block span.interfaceName {
     font-style:normal;
 }
-
-div.contentContainer ul.blockList li.blockList h2{
+div.contentContainer ul.blockList li.blockList h2 {
     padding-bottom:0px;
 }
+/*
+ * Styles for IFRAME.
+ */
+.mainContainer {
+    margin:0 auto; 
+    padding:0; 
+    height:100%; 
+    width:100%; 
+    position:fixed; 
+    top:0; 
+    left:0;
+}
+.leftContainer {
+    height:100%;
+    position:fixed;
+    width:320px;
+}
+.leftTop {
+    position:relative;
+    float:left;
+    width:315px;
+    top:0;
+    left:0;
+    height:30%;
+    border-right:6px solid #ccc;
+    border-bottom:6px solid #ccc;
+}
+.leftBottom {
+    position:relative;
+    float:left;
+    width:315px;
+    bottom:0;
+    left:0;
+    height:70%;
+    border-right:6px solid #ccc;
+    border-top:1px solid #000;
+}
+.rightContainer {
+    position:absolute;
+    left:320px;
+    top:0;
+    bottom:0;
+    height:100%;
+    right:0;
+    border-left:1px solid #000;
+}
+.rightIframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    right:30px;
+    width:100%;
+    overflow:visible;
+    margin-bottom:30px;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+    display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-autocomplete-category {
+    font-weight:bold;
+    font-size:15px;
+    padding:7px 0 7px 3px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+}
+.resultItem {
+    font-size:13px;
+}
+.ui-autocomplete {
+    max-height:85%;
+    max-width:65%;
+    overflow-y:scroll;
+    overflow-x:scroll;
+    white-space:nowrap;
+    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+    position:fixed;
+    z-index:999999;
+}
+ul.ui-autocomplete  li {
+    float:left;
+    clear:both;
+    width:100%;
+}
+.resultHighlight {
+    font-weight:bold;
+}
+#search {
+    background-image:url('resources/glass.png');
+    background-size:13px;
+    background-repeat:no-repeat;
+    background-position:2px 3px;
+    padding-left:20px;
+    position:relative;
+    right:-18px;
+}
+#reset {
+    background-color: rgb(255,255,255);
+    background-image:url('resources/x.png');
+    background-position:center;
+    background-repeat:no-repeat;
+    background-size:12px;
+    border:0 none;
+    width:16px;
+    height:17px;
+    position:relative;
+    left:-4px;
+    top:-4px;
+    font-size:0px;
+}
+.watermark {
+    color:#545454;
+}
+.searchTagDescResult {
+    font-style:italic;
+    font-size:11px;
+}
+.searchTagHolderResult {
+    font-style:italic;
+    font-size:12px;
+}
+.searchTagResult:before, .searchTagResult:target {
+    color:red;
+}
+.moduleGraph span {
+    display:none;
+    position:absolute;
+}
+.moduleGraph:hover span {
+    display:block;
+    margin: -100px 0 0 100px;
+    z-index: 1;
+}
+.methodSignature {
+    white-space:normal;
+}
+
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ *      No borders, vertical margins, styled caption.
+ *      This style is provided for use with existing doc comments.
+ *      In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ *      Plain borders around table and cells, vertical margins, styled caption.
+ *      Best for small tables or for complex tables for tables with cells that span
+ *      rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ *      Borders around the table and vertical borders between cells, striped rows,
+ *      vertical margins, styled caption.
+ *      Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+    font-weight: bold;
+    font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+    padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+    border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+    background-color: transparent;
+}
+table.plain {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+    background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+    border: 1px solid black;
+}
+table.striped {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.striped > thead {
+    background-color: #E3E3E3;
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+    border: 1px solid black;
+}
+table.striped > tbody > tr:nth-child(even) {
+    background-color: #EEE
+}
+table.striped > tbody > tr:nth-child(odd) {
+    background-color: #FFF
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+    border-left: 1px solid black;
+    border-right: 1px solid black;
+}
+table.striped > tbody > tr > th {
+    font-weight: normal;
+}
diff --git a/apidocs/stable/type-search-index.js b/apidocs/stable/type-search-index.js
new file mode 100644
index 0000000..8a0cd26
--- /dev/null
+++ b/apidocs/stable/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"org.apache.tamaya.core.propertysource","l":"BasePropertySource"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"BasePropertySource"},{"p":"org.apache.tamaya.core.internal.converters","l":"BigDecimalConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"BigIntegerConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"BooleanConverter"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"BuildablePropertySource"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"BuildablePropertySourceProvider"},{"p":"org.apache.tamaya.spi","l":"ConversionContext.Builder"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"BuildablePropertySource.Builder"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"BuildablePropertySourceProvider.Builder"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"SimplePropertySource.Builder"},{"p":"org.apache.tamaya.core.internal.converters","l":"ByteConverter"},{"p":"org.apache.tamaya.spi","l":"ChangeSupport"},{"p":"org.apache.tamaya.core.internal.converters","l":"CharConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"ClassConverter"},{"p":"org.apache.tamaya.spi","l":"ClassloaderAware"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"CLIPropertySource"},{"p":"org.apache.tamaya","l":"ConfigException"},{"p":"org.apache.tamaya","l":"ConfigOperator"},{"p":"org.apache.tamaya","l":"ConfigQuery"},{"p":"org.apache.tamaya","l":"Configuration"},{"p":"org.apache.tamaya.spi","l":"ConfigurationBuilder"},{"p":"org.apache.tamaya.spi","l":"ConfigurationContext"},{"p":"org.apache.tamaya","l":"ConfigurationProvider"},{"p":"org.apache.tamaya.spi","l":"ConfigurationProviderSpi"},{"p":"org.apache.tamaya","l":"ConfigurationSnapshot"},{"p":"org.apache.tamaya.spisupport","l":"ConfigValueEvaluator"},{"p":"org.apache.tamaya.spi","l":"ConversionContext"},{"p":"org.apache.tamaya.core.internal","l":"CoreConfiguration"},{"p":"org.apache.tamaya.core.internal","l":"CoreConfigurationBuilder"},{"p":"org.apache.tamaya.core.internal","l":"CoreConfigurationProvider"},{"p":"org.apache.tamaya.core.internal.converters","l":"CurrencyConverter"},{"p":"org.apache.tamaya.spisupport","l":"DefaultConfiguration"},{"p":"org.apache.tamaya.spisupport","l":"DefaultConfigurationBuilder"},{"p":"org.apache.tamaya.spisupport","l":"DefaultConfigurationContext"},{"p":"org.apache.tamaya.spisupport","l":"DefaultConfigurationSnapshot"},{"p":"org.apache.tamaya.spisupport","l":"DefaultConfigValueEvaluator"},{"p":"org.apache.tamaya.spisupport","l":"DefaultMetaDataProvider"},{"p":"org.apache.tamaya.spisupport","l":"DefaultPropertySourceSnapshot"},{"p":"org.apache.tamaya.spisupport","l":"DefaultServiceContext"},{"p":"org.apache.tamaya.core.internal.converters","l":"DoubleConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"DurationConverter"},{"p":"org.apache.tamaya.spisupport","l":"EnumConverter"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"EnvironmentPropertySource"},{"p":"org.apache.tamaya.spi","l":"Experimental"},{"p":"org.apache.tamaya.core.internal.converters","l":"FileConverter"},{"p":"org.apache.tamaya.spi","l":"FilterContext"},{"p":"org.apache.tamaya.core.internal.converters","l":"FloatConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"InstantConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"IntegerConverter"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"JavaConfigurationPropertySource"},{"p":"org.apache.tamaya.spi","l":"ListValue"},{"p":"org.apache.tamaya.core.internal.converters","l":"LocalDateConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"LocalDateTimeConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"LocalTimeConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"LongConverter"},{"p":"org.apache.tamaya.examples.custompropertysource","l":"Main"},{"p":"org.apache.tamaya.examples.minimal","l":"Main"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"MapPropertySource"},{"p":"org.apache.tamaya.spisupport","l":"MetadataProvider"},{"p":"org.apache.tamaya.core.internal.converters","l":"MonthDayConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"NumberConverter"},{"p":"org.apache.tamaya.spi","l":"ObjectValue"},{"p":"org.apache.tamaya.core.internal.converters","l":"OffsetDateTimeConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"OffsetTimeConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"OptionalConverter"},{"p":"org.apache.tamaya.core","l":"OSGIActivator"},{"p":"org.apache.tamaya.core.internal","l":"OSGIServiceContext"},{"p":"org.apache.tamaya.core.internal","l":"OSGIServiceLoader"},{"p":"org.apache.tamaya.core.internal.converters","l":"PathConverter"},{"p":"org.apache.tamaya.spisupport","l":"PriorityServiceComparator"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"PropertiesResourcePropertySource"},{"p":"org.apache.tamaya.spi","l":"PropertyConverter"},{"p":"org.apache.tamaya.spisupport","l":"PropertyConverterManager"},{"p":"org.apache.tamaya.spi","l":"PropertyFilter"},{"p":"org.apache.tamaya.spisupport","l":"PropertyFilterComparator"},{"p":"org.apache.tamaya.spisupport","l":"PropertyFiltering"},{"p":"org.apache.tamaya.spi","l":"PropertySource"},{"p":"org.apache.tamaya.spisupport","l":"PropertySourceChangeSupport"},{"p":"org.apache.tamaya.spisupport","l":"PropertySourceComparator"},{"p":"org.apache.tamaya.spi","l":"PropertySourceProvider"},{"p":"org.apache.tamaya.spi","l":"PropertyValue"},{"p":"org.apache.tamaya.spisupport","l":"ReflectionUtil"},{"p":"org.apache.tamaya.spisupport","l":"RegexPropertyFilter"},{"p":"org.apache.tamaya.spi","l":"ServiceContext"},{"p":"org.apache.tamaya.spi","l":"ServiceContextManager"},{"p":"org.apache.tamaya.core.internal.converters","l":"ShortConverter"},{"p":"org.apache.tamaya.examples.custompropertysource","l":"SimplePropertySource"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"SimplePropertySource"},{"p":"org.apache.tamaya.examples.custompropertysource","l":"SimplePropertySourceProvider"},{"p":"org.apache.tamaya.core.internal.converters","l":"SupplierConverter"},{"p":"org.apache.tamaya.spisupport.propertysource","l":"SystemPropertySource"},{"p":"org.apache.tamaya","l":"TypeLiteral"},{"p":"org.apache.tamaya.core.internal.converters","l":"URIConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"URLConverter"},{"p":"org.apache.tamaya.spi","l":"PropertyValue.ValueType"},{"p":"org.apache.tamaya.core.internal.converters","l":"YearConverter"},{"p":"org.apache.tamaya.core.internal.converters","l":"YearMonthConverter"}]
\ No newline at end of file
diff --git a/apidocs/stable/type-search-index.zip b/apidocs/stable/type-search-index.zip
new file mode 100644
index 0000000..5e8eadf
--- /dev/null
+++ b/apidocs/stable/type-search-index.zip
Binary files differ
