You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by po...@apache.org on 2018/04/26 20:41:27 UTC
[03/11] incubator-tamaya-site git commit: Regen site.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8e3904a8/documentation-new/extensions/mod_usagetracker.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_usagetracker.html b/documentation-new/extensions/mod_usagetracker.html
new file mode 100644
index 0000000..752e5b9
--- /dev/null
+++ b/documentation-new/extensions/mod_usagetracker.html
@@ -0,0 +1,375 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Apache Tamaya - Extension: Usage Tracking</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta name="description" content=""/>
+ <meta name="author" content=""/>
+ <meta name="keywords" content=""/>
+ <meta name="generator" content="'JBake '+'${version}"/>
+
+ <!-- Le styles -->
+ <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+ <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+ <link href="../../css/base.css" rel="stylesheet"/>
+ <link href="../../css/prettify.css" rel="stylesheet"/>
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="../../js/html5shiv.min.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons from ASF -->
+ <link rel="shortcut icon" href="../../favicon.ico"/>
+ <link rel="apple-touch-icon" sizes="57x57" href="../../favicons/apple-touch-icon-57x57.png"/>
+ <link rel="apple-touch-icon" sizes="60x60" href="../../favicons/apple-touch-icon-60x60.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="../../favicons/apple-touch-icon-72x72.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="../../favicons/apple-touch-icon-76x76.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="../../favicons/apple-touch-icon-114x114.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="../../favicons/apple-touch-icon-120x120.png"/>
+ <link rel="apple-touch-icon" sizes="144x144" href="../../favicons/apple-touch-icon-144x144.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="../../favicons/apple-touch-icon-152x152.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="../../favicons/apple-touch-icon-180x180.png"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+ <link rel="icon" type="image/png" href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+ <link rel="manifest" href="../../favicons/manifest.json"/>
+ <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+ <meta name="msapplication-TileColor" content="#603cba"/>
+ <meta name="msapplication-TileImage" content="../../favicons/mstile-144x144.png"/>
+ <meta name="msapplication-config" content="../../favicons/browserconfig.xml"/>
+ <meta name="theme-color" content="#303284"/>
+ </head>
+ <body onload="prettyPrint()">
+ <div id="wrap">
+ <div>
+
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="../../index.html">Apache Tamaya (incubating)</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="../../start.html">Tamaya in 5 minutes</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+ <li><a href="../../documentation/quickstart.html">Quickstart</a></li>
+ <li><a href="../../documentation/api.html">API</a></li>
+ <li><a href="../../documentation/core.html">Core</a></li>
+ <li><a href="../../documentation/extensions.html">Extension Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../apidocs/stable/index.html">Javadoc 0.3-incubating (release/stable)</a></li>
+ <li><a href="../../apidocs/development/index.html">Javadoc 0.4-incubating-SNAPSHOT (development)</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../development/source.html">Sources</a></li>
+ <li><a href="../../development/community.html">Community</a></li>
+ <li><a href="../../development/team.html">Project Team</a></li>
+ <li><a target="_blank" href="https://builds.apache.org/view/S-Z/view/Tamaya/">CI / ASF Jenkins</a></li>
+ <li><a target="_blank" href="https://issues.apache.org/jira/browse/TAMAYA">Issues / ASF Jira</a></li>
+ <li><a href="../../devguide.html">Development Guide</a></li>
+ <li><a href="../../release-guide.html">Release Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../development/possible-contributions.html">Possible Contributions</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../download.html">Download</a></li>
+ <li><a href="../../history.html">Release History</a></li>
+ </ul>
+ </li>
+<!-- Example:
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="#">Action</a></li>
+ <li><a href="#">Another action</a></li>
+ <li><a href="#">Something else here</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">Nav header</li>
+ <li><a href="#">Separated link</a></li>
+ <li><a href="#">One more separated link</a></li>
+ </ul>
+ </li>
+-->
+ <li><a href="../../sitemap.xml">Sitemap</a></li>
+ <li><a href="../../feed.xml">Subscribe</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+
+ </div>
+ <div class="container">
+
+ <div class="page-header">
+ <h1>Apache Tamaya - Extension: Usage Tracking</h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="UsageTracker">Tamaya Usage Tracking (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>UsageTracker</em> is an extension module. Refer to the <a href="../extensions.html">extensions documentation</a> for further details.</p>
+</div>
+<div class="sect2">
+<h3 id="_what_functionality_this_module_provides">What functionality this module provides ?</h3>
+<div class="paragraph">
+<p>Tamaya <em>UsageTracker</em> allows to record and count the configuration access and consumer locations in your local
+VM.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module is based on Java 8, so it can be used with Java 8 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To use Tamaya <em>usagetracker</em> you only must add the corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-usagetracker</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_tracking_configuration_access">Tracking Configuration Access</h3>
+<div class="paragraph">
+<p>The model module also allows tracking which code accesses configuration properties or configuration parameters.
+It checks the stacktrace to evaluate the calling code location, hereby any unwanted packages can be implicitly
+ommitted from the stacktrace. Also the maximal length of the stacktrace retained can be constraint in length.
+The usages are recorded as Usage instances. Hereby for each parameter accessed a corresponding Usage
+instance is created. It can be accessed by calling Usage ConfigUsageStats.getUsage(String key). Usage
+statistics for calling Config.getPropertyNames() can be obtained calling Usage getUsageAllProps();.</p>
+</div>
+<div class="paragraph">
+<p>Usage tracking is disabled by default. It can be enabled by calling ConfigUsageStats.enableUsageTracking(true);.
+ConfigUsageStats.isUsageTrackingEnabled() returns the current tracking status.</p>
+</div>
+<div class="paragraph">
+<p>The Usage class itself provides access to further fainer grained usage data (AccessDetail) containing:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>the access point (fqn.ClassName#method(line: xxx)).</p>
+</li>
+<li>
+<p>the number of accesses</p>
+</li>
+<li>
+<p>the first an last access</p>
+</li>
+<li>
+<p>the values read</p>
+</li>
+<li>
+<p>the access stacktrace (filtered by ignored packages).</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public final class Usage {
+ [...]
+ public String getKey();
+ public void clearMetrics();
+ public int getReferenceCount();
+ public int getUsageCount();
+ public Collection<AccessDetail> getAccessDetails(Class type);
+ public Collection<AccessDetail> getAccessDetails(Package pack);
+ public Collection<AccessDetail> getAccessDetails(String lookupExpression);
+ public Collection<AccessDetail> getAccessDetails();
+ public void trackUsage(String value);
+ public void trackUsage(String value, int maxTraceLength);
+
+
+ public static final class AccessDetail {
+ [...]
+ public void clearStats();
+ public long trackAccess(String value);
+ public long getAccessCount();
+ public String getAccessPoint();
+ public long getFirstAccessTS();
+ public long getLastAccessTS();
+ public String[] getStackTrace();
+ public Map<Long, String> getTrackedValues();
+ }
+
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>With ConfigUsageStats.clearUsageStats() the collected statistics can be reset at any time. Summarizing the main
+singleton for configuration statistics is defined as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public final class ConfigUsageStats{
+ public static Set<String> getIgnoredUsagePackages();
+ public static void addIgnoredUsagePackages(String... packageName);
+ public static void enableUsageTracking(boolean enabled);
+ public static Usage getUsage(String key);
+ public static Collection<Usage> getUsages();
+ public static void clearUsageStats();
+ public static Usage getUsageAllProperties();
+ public static boolean isUsageTrackingEnabled();
+ public static String getUsageInfo();
+}</code></pre>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_customizing_the_stacktrace_for_usage_reporting">Customizing the Stacktrace for Usage Reporting</h4>
+<div class="paragraph">
+<p>The stacktrace tracked by the system can be customized in several ways:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>ConfigUsageStats.addIgnoredPackageNames(String...) allows to add additional ignored package names.</p>
+</li>
+<li>
+<p>With Usage.setMaxTraceLength(int) the maximal size of the stacktraces logged can be set. Setting a
+negative value will disable stacktrace logging completelely.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_accessing_usage_statistics">Accessing Usage Statistics</h3>
+<div class="paragraph">
+<p>Bascially usage statistics are available in two forms:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>The Usage/AccessDetail object tree can be accessed programmatically from the ConfigUsageStats
+singleton.</p>
+</li>
+<li>
+<p>With ConfigUsageStats.getUsageInfo() also a textual representation of the usage statistics
+can be obtained, as illustrated below (a snipped from the current test output):</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" data-lang="listing">Apache Tamaya Configuration Usage Metrics
+=========================================
+DATE: Sat Apr 30 21:51:09 CEST 2016
+
+220 <<all>>:
+ - 220 <unknown/filtered/internal> , first=Sat Apr 30 21:51:09 CEST 2016, last=Sat Apr 30 21:51:09 CEST 2016
+3 java.version:
+ - 2 test.model.TestConfigAccessor#readProperty(line:43), first=Sat Apr 30 21:51:09 CEST 2016, last=Sat Apr 30 21:51:09 CEST 2016
+ - 1 <unknown/filtered/internal> , first=Sat Apr 30 21:51:09 CEST 2016, last=Sat Apr 30 21:51:09 CEST 2016</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_auto_documentation_of_classes_with_configuration_injection">Auto-Documentation of Classes with Configuration Injection</h3>
+<div class="paragraph">
+<p>A special feature of this module is that it observes ConfigEvent published through Tamaya’as event channel
+(tamaya-events module). If no metaconfiguration model is found the model manager by default automatically creates
+models for all injected instances on the fly. In the case of CDI integration this happens typically during deployment
+time, since CDI initializes during deployment time. Other runtime platforms, such as OSGI, may have rather different
+behaviour. Nevertheless this means that after your system has been started you should have access to a complete
+set of ConfigModel instances that automatically document all the classes in your system that consume configuration
+(through injection).</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_usagetracker_module_spi">UsageTracker Module SPI</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_the_configusagestatsspi">The ConfigUsageStatsSpi</h3>
+<div class="paragraph">
+<p>The methods for managing and tracking of configuration changes are similarly delegated to an
+implementation of the org.apache.tamaya.model.spi.ConfigUsageStatsSpi SPI.
+By implementing this SPI and registerting it with the ServiceContext the usage tracking
+logic can be adapted or replaced.</p>
+</div>
+</div>
+</div>
+</div></p>
+
+ <hr />
+ </div>
+ </div>
+ <div>
+ <div id="push"></div>
+
+ <div id="footer">
+ <div class="container">
+ <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a>
+ | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a>
+ at <span>2018-04-26</span> |
+ <a class="twitter-follow-button" data-show-count="false" href="https://twitter.com/tamayaconf">Follow @tamayaconf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p>
+ <b>Disclaimer</b>
+ Apache Tamaya (incubating) is an effort undergoing
+ incubation at
+ The Apache Software Foundation (ASF), sponsored by
+ the name of Apache Incubator. Incubation is required of
+ all newly accepted projects until a further review indicates
+ that the infrastructure, communications, and decision making
+ process have stabilized in a manner consistent with other
+ successful ASF projects. While incubation status is not
+ necessarily a reflection of the completeness or stability of
+ the code, it does indicate that the project has yet to
+ be fully endorsed by the ASF.
+ Apache, Apache Tamaya, and the Apache Tamaya logo are registered trademarks or trademarks of The Apache Software Foundation in the U.S. and/or other countries.<br />
+ <a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
+ <img class="incubator-logo" src="../../logos/apache-incubator.png"/>
+ </a>
+ </p>
+ </div>
+ </div>
+
+ <!-- Le javascript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="../../js/jquery-1.11.1.min.js"></script>
+ <script src="../../js/bootstrap.min.js"></script>
+ <script src="../../js/prettify.js"></script>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8e3904a8/documentation-new/extensions/mod_validation.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_validation.html b/documentation-new/extensions/mod_validation.html
new file mode 100644
index 0000000..52d0845
--- /dev/null
+++ b/documentation-new/extensions/mod_validation.html
@@ -0,0 +1,310 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Apache Tamaya - Extension: Configuration Validation</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta name="description" content=""/>
+ <meta name="author" content=""/>
+ <meta name="keywords" content=""/>
+ <meta name="generator" content="'JBake '+'${version}"/>
+
+ <!-- Le styles -->
+ <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+ <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+ <link href="../../css/base.css" rel="stylesheet"/>
+ <link href="../../css/prettify.css" rel="stylesheet"/>
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="../../js/html5shiv.min.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons from ASF -->
+ <link rel="shortcut icon" href="../../favicon.ico"/>
+ <link rel="apple-touch-icon" sizes="57x57" href="../../favicons/apple-touch-icon-57x57.png"/>
+ <link rel="apple-touch-icon" sizes="60x60" href="../../favicons/apple-touch-icon-60x60.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="../../favicons/apple-touch-icon-72x72.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="../../favicons/apple-touch-icon-76x76.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="../../favicons/apple-touch-icon-114x114.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="../../favicons/apple-touch-icon-120x120.png"/>
+ <link rel="apple-touch-icon" sizes="144x144" href="../../favicons/apple-touch-icon-144x144.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="../../favicons/apple-touch-icon-152x152.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="../../favicons/apple-touch-icon-180x180.png"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+ <link rel="icon" type="image/png" href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+ <link rel="manifest" href="../../favicons/manifest.json"/>
+ <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+ <meta name="msapplication-TileColor" content="#603cba"/>
+ <meta name="msapplication-TileImage" content="../../favicons/mstile-144x144.png"/>
+ <meta name="msapplication-config" content="../../favicons/browserconfig.xml"/>
+ <meta name="theme-color" content="#303284"/>
+ </head>
+ <body onload="prettyPrint()">
+ <div id="wrap">
+ <div>
+
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="../../index.html">Apache Tamaya (incubating)</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="../../start.html">Tamaya in 5 minutes</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+ <li><a href="../../documentation/quickstart.html">Quickstart</a></li>
+ <li><a href="../../documentation/api.html">API</a></li>
+ <li><a href="../../documentation/core.html">Core</a></li>
+ <li><a href="../../documentation/extensions.html">Extension Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../apidocs/stable/index.html">Javadoc 0.3-incubating (release/stable)</a></li>
+ <li><a href="../../apidocs/development/index.html">Javadoc 0.4-incubating-SNAPSHOT (development)</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../development/source.html">Sources</a></li>
+ <li><a href="../../development/community.html">Community</a></li>
+ <li><a href="../../development/team.html">Project Team</a></li>
+ <li><a target="_blank" href="https://builds.apache.org/view/S-Z/view/Tamaya/">CI / ASF Jenkins</a></li>
+ <li><a target="_blank" href="https://issues.apache.org/jira/browse/TAMAYA">Issues / ASF Jira</a></li>
+ <li><a href="../../devguide.html">Development Guide</a></li>
+ <li><a href="../../release-guide.html">Release Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../development/possible-contributions.html">Possible Contributions</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../download.html">Download</a></li>
+ <li><a href="../../history.html">Release History</a></li>
+ </ul>
+ </li>
+<!-- Example:
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="#">Action</a></li>
+ <li><a href="#">Another action</a></li>
+ <li><a href="#">Something else here</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">Nav header</li>
+ <li><a href="#">Separated link</a></li>
+ <li><a href="#">One more separated link</a></li>
+ </ul>
+ </li>
+-->
+ <li><a href="../../sitemap.xml">Sitemap</a></li>
+ <li><a href="../../feed.xml">Subscribe</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+
+ </div>
+ <div class="container">
+
+ <div class="page-header">
+ <h1>Apache Tamaya - Extension: Configuration Validation</h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="Validation">Tamaya Validation: Validating Configuration (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>Validation</em> is an extension module. Refer to the <a href="../extensions.html">extensions documentation</a> for further details.</p>
+</div>
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>Tamaya <em>Validation</em> adds support to validate a configuration against a set of rules
+defined in a Tamaya Metaconfiguration XML file.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module is based on Java 8, so it will run on Java 8 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To activate configuration <em>validation</em> you only must add the corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-validation</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The component will extend Tamaya’s tamaya-metamodel module and adds an additional meta provider ruleset
+so validation rules can also be added to the default meta configuration XML file as separate sections.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_usage">Usage</h3>
+<div class="paragraph">
+<p>This module expects meta-configuration to be located at the following locations. Hereby multiple files
+are supported:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-text" data-lang="text">-Dtamaya-validation=<an URL> // any resolvable URL
+./tamaya-validation-*.xml // file
+META-INF/tamaya-validation-*.xml // classpath (multiple entries-possible)</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_the_validation_xml_format">The Validation XML Format</h3>
+<div class="paragraph">
+<p>The configuration validation is defined by simple configuration meta-data entries.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><configuration-validation>
+ ...
+ <provider>The Validation Provider</provider> <!-- optional -->
+ <section name="org.mycompany">
+ <section name="security" required="true">
+ <description>The description of ma area.</description>
+ </section>
+ </section>
+ <section name="minimal"/>
+ <section name="validated.sections" at-least="1">
+ <section name="customValidated" validator="myFQValidatorClassName"/>
+ <section name="withParams" >
+ <param name="int" type="int"/>
+ <param name="aText" expression="[a|b|c]" required="true"/>
+ <param name="aValidatedText" validator="myValidatorClass">
+ <description>This kind of params are more complex...</description>
+ </param>
+ </section>
+ </section>
+ <validator class="a,b,c,MyGlobalValidator"/>
+</configuration-validation></code></pre>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_the_example_explained">The Example Explained</h4>
+<div class="ulist">
+<ul>
+<li>
+<p>The <strong>provider</strong> entry is used for generating validation message, when a validation fails.</p>
+</li>
+<li>
+<p>Section itself can be recursively defined, where each level can have it’s own validations.</p>
+</li>
+<li>
+<p>Sections added, but without validation rules are <em>defined</em> section. Configuration outside of
+defined sections can be flagged out using WARNING messages.</p>
+</li>
+<li>
+<p>Sections can be <em>reuired</em> and additionally also <em>validated</em>.</p>
+</li>
+<li>
+<p>There is also the possibility to register global validators, which are called by the validation
+logic once a configuration has been completely loaded.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Similar to sections also parameters can be validated:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>they can be marked as <em>required</em></p>
+</li>
+<li>
+<p>they can have a certain type, meaning they must be convertible to the given type</p>
+</li>
+<li>
+<p>they can have an additional custom validator.</p>
+</li>
+<li>
+<p>they can have an optional description for error analysis and error output.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Similar to section parameters that are not defined, but encountered may be flagged out with
+a WARNING message.</p>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+ <hr />
+ </div>
+ </div>
+ <div>
+ <div id="push"></div>
+
+ <div id="footer">
+ <div class="container">
+ <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a>
+ | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a>
+ at <span>2018-04-26</span> |
+ <a class="twitter-follow-button" data-show-count="false" href="https://twitter.com/tamayaconf">Follow @tamayaconf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p>
+ <b>Disclaimer</b>
+ Apache Tamaya (incubating) is an effort undergoing
+ incubation at
+ The Apache Software Foundation (ASF), sponsored by
+ the name of Apache Incubator. Incubation is required of
+ all newly accepted projects until a further review indicates
+ that the infrastructure, communications, and decision making
+ process have stabilized in a manner consistent with other
+ successful ASF projects. While incubation status is not
+ necessarily a reflection of the completeness or stability of
+ the code, it does indicate that the project has yet to
+ be fully endorsed by the ASF.
+ Apache, Apache Tamaya, and the Apache Tamaya logo are registered trademarks or trademarks of The Apache Software Foundation in the U.S. and/or other countries.<br />
+ <a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
+ <img class="incubator-logo" src="../../logos/apache-incubator.png"/>
+ </a>
+ </p>
+ </div>
+ </div>
+
+ <!-- Le javascript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="../../js/jquery-1.11.1.min.js"></script>
+ <script src="../../js/bootstrap.min.js"></script>
+ <script src="../../js/prettify.js"></script>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8e3904a8/documentation-new/extensions/mod_vertx.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_vertx.html b/documentation-new/extensions/mod_vertx.html
new file mode 100644
index 0000000..832aefe
--- /dev/null
+++ b/documentation-new/extensions/mod_vertx.html
@@ -0,0 +1,382 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Apache Tamaya - Extension: Integration for Vertx</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta name="description" content=""/>
+ <meta name="author" content=""/>
+ <meta name="keywords" content=""/>
+ <meta name="generator" content="'JBake '+'${version}"/>
+
+ <!-- Le styles -->
+ <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+ <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+ <link href="../../css/base.css" rel="stylesheet"/>
+ <link href="../../css/prettify.css" rel="stylesheet"/>
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="../../js/html5shiv.min.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons from ASF -->
+ <link rel="shortcut icon" href="../../favicon.ico"/>
+ <link rel="apple-touch-icon" sizes="57x57" href="../../favicons/apple-touch-icon-57x57.png"/>
+ <link rel="apple-touch-icon" sizes="60x60" href="../../favicons/apple-touch-icon-60x60.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="../../favicons/apple-touch-icon-72x72.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="../../favicons/apple-touch-icon-76x76.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="../../favicons/apple-touch-icon-114x114.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="../../favicons/apple-touch-icon-120x120.png"/>
+ <link rel="apple-touch-icon" sizes="144x144" href="../../favicons/apple-touch-icon-144x144.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="../../favicons/apple-touch-icon-152x152.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="../../favicons/apple-touch-icon-180x180.png"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+ <link rel="icon" type="image/png" href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+ <link rel="manifest" href="../../favicons/manifest.json"/>
+ <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+ <meta name="msapplication-TileColor" content="#603cba"/>
+ <meta name="msapplication-TileImage" content="../../favicons/mstile-144x144.png"/>
+ <meta name="msapplication-config" content="../../favicons/browserconfig.xml"/>
+ <meta name="theme-color" content="#303284"/>
+ </head>
+ <body onload="prettyPrint()">
+ <div id="wrap">
+ <div>
+
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="../../index.html">Apache Tamaya (incubating)</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="../../start.html">Tamaya in 5 minutes</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+ <li><a href="../../documentation/quickstart.html">Quickstart</a></li>
+ <li><a href="../../documentation/api.html">API</a></li>
+ <li><a href="../../documentation/core.html">Core</a></li>
+ <li><a href="../../documentation/extensions.html">Extension Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../apidocs/stable/index.html">Javadoc 0.3-incubating (release/stable)</a></li>
+ <li><a href="../../apidocs/development/index.html">Javadoc 0.4-incubating-SNAPSHOT (development)</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../development/source.html">Sources</a></li>
+ <li><a href="../../development/community.html">Community</a></li>
+ <li><a href="../../development/team.html">Project Team</a></li>
+ <li><a target="_blank" href="https://builds.apache.org/view/S-Z/view/Tamaya/">CI / ASF Jenkins</a></li>
+ <li><a target="_blank" href="https://issues.apache.org/jira/browse/TAMAYA">Issues / ASF Jira</a></li>
+ <li><a href="../../devguide.html">Development Guide</a></li>
+ <li><a href="../../release-guide.html">Release Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../development/possible-contributions.html">Possible Contributions</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../download.html">Download</a></li>
+ <li><a href="../../history.html">Release History</a></li>
+ </ul>
+ </li>
+<!-- Example:
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="#">Action</a></li>
+ <li><a href="#">Another action</a></li>
+ <li><a href="#">Something else here</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">Nav header</li>
+ <li><a href="#">Separated link</a></li>
+ <li><a href="#">One more separated link</a></li>
+ </ul>
+ </li>
+-->
+ <li><a href="../../sitemap.xml">Sitemap</a></li>
+ <li><a href="../../feed.xml">Subscribe</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+
+ </div>
+ <div class="container">
+
+ <div class="page-header">
+ <h1>Apache Tamaya - Extension: Integration for Vertx</h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="JNDI">Integration with Vertx (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>JNDI</em> is an extension module. Refer to the <a href="../extensions.html">extensions documentation</a> for further details.</p>
+</div>
+<div class="sect2">
+<h3 id="_what_functionality_this_module_provides">What functionality this module provides ?</h3>
+<div class="paragraph">
+<p>Tamaya <em>Vertx</em> provides configuration services that can be used in a Vertx environment:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>AbstractConfiguredVerticle defines a subclass extending AbstractVerticle, which allows you to
+use Tamaya Injection API.</p>
+</li>
+<li>
+<p>Additionally you deply a ConfigVerticle, which registers services to access configuration
+using asynchronous event bus.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The module requires Java 8, so it will not run on Java 7.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To use Tamaya’s <em>Vertx</em> support you only must add the corresponding dependency to
+your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-vertx</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_the_functionality_provided">The Functionality Provided</h3>
+<div class="sect3">
+<h4 id="_extending_abstractconfiguredverticle">Extending AbstractConfiguredVerticle</h4>
+<div class="paragraph">
+<p>Main artifact is the AbstractConfiguredVerticle class, which implements a
+base verticle class for Vertx:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public abstract class AbstractConfiguredVerticle extends AbstractVerticle{
+
+ private Configuration configuration;
+
+ public AbstractConfiguredVerticle() {
+ configure();
+ }
+
+ public Configuration getConfiguration(){
+ if(this.configuration==null){
+ this.configuration = ConfigurationProvider.getConfiguration();
+ }
+ return this.configuration;
+ }
+
+ public void setConfiguration(Configuration configuration){
+ this.configuration = configuration;
+ configure();
+ }
+
+ protected void configure(){
+ ConfigurationInjection.getConfigurationInjector().configure(this, getConfiguration());
+ }
+
+ protected final String getConfigProperty(String key);
+ protected final String getConfigPropertyOrDefault(String key, String defaultValue);
+ protected final <T> T getConfigProperty(String key, Class<T> type);
+ protected final <T> T getConfigPropertyOrDefault(String key, Class<T> type, T defaultValue);
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Using this verticle as a superclass, provides you</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>embedded convenience methods for programmatic configuration access (getConfigProperty* methods).</p>
+</li>
+<li>
+<p>support for configuration injection based on <a href="../mod_injection.html">Tamaya’s injection API</a>.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The following code snippet gives you an example, what you can do with this functionality:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public cllass MyVerticle extends AbstractConfiguredVerticle{
+
+ @Override
+ public void start(){
+ String configuredValue = getConfigPropertyOrDefault("myKey");
+ [...]
+ BigDecimal bd = getConfigureddPropertyOrDefault("MyNum", BigDecimal.ZERO);
+ [...]
+ }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>As menioned you can also use the injection API:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public cllass MyVerticle extends AbstractConfiguredVerticle{
+
+ @Config("myKey")
+ private String configuredValue;
+
+ @Config(value="MyNum", defaultValue="0.0")
+ private BigDecimal bd;
+
+
+ @Override
+ public void start(){
+ [...]
+ }
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_accessing_configuration_using_the_vertx_event_bus">Accessing Configuration using the Vertx event bus</h4>
+<div class="paragraph">
+<p>Additionally the extension allows to access configuration values from the event bus:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@Override
+public void start(){
+ // the selector allows to apply a regex on the configuration key to select a
+ // a configuration sub set.
+ String selector = "user.";
+ vertx().eventBus().send(
+ "CONFIG-MAP", // event bus address
+ selector,
+ new Handler<AsyncResult<Message<String>>>() {
+ @Override
+ public void handle(AsyncResult<Message<String>> reply) {
+ testContext.assertNotNull(reply.result());
+ testContext.assertNotNull(reply.result().body());
+ Map<String,String> config = Json.decodeValue(reply.result().body(),
+ Map.class);
+ // do something with the config
+ // ...
+ }
+ });</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Similar only single values can be accessed:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@Override
+public void start(){
+ vertx().eventBus().send(
+ "CONFIG-VAL", // event bus address
+ "user.home", // property key
+ new Handler<AsyncResult<Message<String>>>() {
+ @Override
+ public void handle(AsyncResult<Message<String>> reply) {
+ String value = reply.result().body();
+ // do something with the config value
+ // ...
+ }
+ });</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Finally the event bus targets to be used can be configured using Tamaya configuration,
+see the code snippet from the implementation:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@ConfigProperty(key = "tamaya.vertx.config.map", defaultValue = "CONFIG-MAP")
+private String mapBusTarget;
+
+@ConfigProperty(key = "tamaya.vertx.config.value", defaultValue = "CONFIG-VAL")
+private String valBusTarget;</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+ <hr />
+ </div>
+ </div>
+ <div>
+ <div id="push"></div>
+
+ <div id="footer">
+ <div class="container">
+ <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a>
+ | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a>
+ at <span>2018-04-26</span> |
+ <a class="twitter-follow-button" data-show-count="false" href="https://twitter.com/tamayaconf">Follow @tamayaconf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p>
+ <b>Disclaimer</b>
+ Apache Tamaya (incubating) is an effort undergoing
+ incubation at
+ The Apache Software Foundation (ASF), sponsored by
+ the name of Apache Incubator. Incubation is required of
+ all newly accepted projects until a further review indicates
+ that the infrastructure, communications, and decision making
+ process have stabilized in a manner consistent with other
+ successful ASF projects. While incubation status is not
+ necessarily a reflection of the completeness or stability of
+ the code, it does indicate that the project has yet to
+ be fully endorsed by the ASF.
+ Apache, Apache Tamaya, and the Apache Tamaya logo are registered trademarks or trademarks of The Apache Software Foundation in the U.S. and/or other countries.<br />
+ <a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
+ <img class="incubator-logo" src="../../logos/apache-incubator.png"/>
+ </a>
+ </p>
+ </div>
+ </div>
+
+ <!-- Le javascript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="../../js/jquery-1.11.1.min.js"></script>
+ <script src="../../js/bootstrap.min.js"></script>
+ <script src="../../js/prettify.js"></script>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8e3904a8/documentation-new/extensions/mod_yaml.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_yaml.html b/documentation-new/extensions/mod_yaml.html
new file mode 100644
index 0000000..dc172d7
--- /dev/null
+++ b/documentation-new/extensions/mod_yaml.html
@@ -0,0 +1,299 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Apache Tamaya - Extension: Builder</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta name="description" content=""/>
+ <meta name="author" content=""/>
+ <meta name="keywords" content=""/>
+ <meta name="generator" content="'JBake '+'${version}"/>
+
+ <!-- Le styles -->
+ <link href="../../css/bootstrap.min.css" rel="stylesheet"/>
+ <link href="../../css/asciidoctor.css" rel="stylesheet"/>
+ <link href="../../css/base.css" rel="stylesheet"/>
+ <link href="../../css/prettify.css" rel="stylesheet"/>
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="../../js/html5shiv.min.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons from ASF -->
+ <link rel="shortcut icon" href="../../favicon.ico"/>
+ <link rel="apple-touch-icon" sizes="57x57" href="../../favicons/apple-touch-icon-57x57.png"/>
+ <link rel="apple-touch-icon" sizes="60x60" href="../../favicons/apple-touch-icon-60x60.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="../../favicons/apple-touch-icon-72x72.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="../../favicons/apple-touch-icon-76x76.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="../../favicons/apple-touch-icon-114x114.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="../../favicons/apple-touch-icon-120x120.png"/>
+ <link rel="apple-touch-icon" sizes="144x144" href="../../favicons/apple-touch-icon-144x144.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="../../favicons/apple-touch-icon-152x152.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="../../favicons/apple-touch-icon-180x180.png"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-32x32.png" sizes="32x32"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-194x194.png" sizes="194x194"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-96x96.png" sizes="96x96"/>
+ <link rel="icon" type="image/png" href="../../favicons/android-chrome-192x192.png" sizes="192x192"/>
+ <link rel="icon" type="image/png" href="../../favicons/favicon-16x16.png" sizes="16x16"/>
+ <link rel="manifest" href="../../favicons/manifest.json"/>
+ <link rel="shortcut icon" href="../../favicons/favicon.ico"/>
+ <meta name="msapplication-TileColor" content="#603cba"/>
+ <meta name="msapplication-TileImage" content="../../favicons/mstile-144x144.png"/>
+ <meta name="msapplication-config" content="../../favicons/browserconfig.xml"/>
+ <meta name="theme-color" content="#303284"/>
+ </head>
+ <body onload="prettyPrint()">
+ <div id="wrap">
+ <div>
+
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="../../index.html">Apache Tamaya (incubating)</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="../../start.html">Tamaya in 5 minutes</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../documentation/usecases.html">Use Cases and Requirements</a></li>
+ <li><a href="../../documentation/quickstart.html">Quickstart</a></li>
+ <li><a href="../../documentation/api.html">API</a></li>
+ <li><a href="../../documentation/core.html">Core</a></li>
+ <li><a href="../../documentation/extensions.html">Extension Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../apidocs/stable/index.html">Javadoc 0.3-incubating (release/stable)</a></li>
+ <li><a href="../../apidocs/development/index.html">Javadoc 0.4-incubating-SNAPSHOT (development)</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../development/source.html">Sources</a></li>
+ <li><a href="../../development/community.html">Community</a></li>
+ <li><a href="../../development/team.html">Project Team</a></li>
+ <li><a target="_blank" href="https://builds.apache.org/view/S-Z/view/Tamaya/">CI / ASF Jenkins</a></li>
+ <li><a target="_blank" href="https://issues.apache.org/jira/browse/TAMAYA">Issues / ASF Jira</a></li>
+ <li><a href="../../devguide.html">Development Guide</a></li>
+ <li><a href="../../release-guide.html">Release Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../../development/possible-contributions.html">Possible Contributions</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../../download.html">Download</a></li>
+ <li><a href="../../history.html">Release History</a></li>
+ </ul>
+ </li>
+<!-- Example:
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="#">Action</a></li>
+ <li><a href="#">Another action</a></li>
+ <li><a href="#">Something else here</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">Nav header</li>
+ <li><a href="#">Separated link</a></li>
+ <li><a href="#">One more separated link</a></li>
+ </ul>
+ </li>
+-->
+ <li><a href="../../sitemap.xml">Sitemap</a></li>
+ <li><a href="../../feed.xml">Subscribe</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+
+ </div>
+ <div class="container">
+
+ <div class="page-header">
+ <h1>Apache Tamaya - Extension: Builder</h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div id="preamble">
+<div class="sectionbody">
+<!-- toc disabled -->
+</div>
+</div>
+<div class="sect1">
+<h2 id="YAML">Tamaya YAML (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>YAML</em> is an extension module. Refer to the <a href="../extensions.html">extensions documentation</a> for further details.</p>
+</div>
+<div class="sect2">
+<h3 id="_overview">Overview</h3>
+<div class="paragraph">
+<p>Tamaya <em>YAML</em> provides support for reading configuration using the YAML format (yaml.org). YAML hereby
+use intendation for expressing hierarchy, which makes yaml configuration files very easily readable and compact.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>The YAML module is based on Java 8, so it will run on Java 8 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To use YAML as configuration format you must add the corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-yaml</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This extension also transitively requires the tamaya.formats module.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_reading_configuration_in_yaml">Reading configuration in YAML</h3>
+<div class="paragraph">
+<p>For reading YAML based onfiguration most easily a YAMLFormat can be provided:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">PropertySource ps = ConfigurationFormats.createConfigSource(
+ getClassLoader().getResource("myFileConfig.yaml"), new YAMLFormat()));</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_examples">Examples</h3>
+<div class="paragraph">
+<p>The YAML module adds instances of ConfigurationFormat so YAML configuration can be read and mapped to the
+according property values. E.g. the following file is a simple and correct YAML configuration:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-yaml" data-lang="yaml">invoice: 34843
+date : 2001-01-23
+bill-to: &id001
+ given : Chris
+ family : Dumars
+ address:
+ lines: |
+ 458 Walkman Dr.
+ Suite #292
+ city : Royal Oak
+ state : MI
+ postal : 48046
+ship-to: *id001
+product:
+ - sku : BL394D
+ quantity : 4
+ description : Basketball
+ price : 450.00
+ - sku : BL4438H
+ quantity : 1
+ description : Super Hoop
+ price : 2392.00
+tax : 251.42
+total: 4443.52
+comments:
+ Late afternoon is best.
+ Backup contact is Nancy
+ Billsmer @ 338-4338.</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Hereby the above file, by default is mapped as follows into Map<String,String> typed properties:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" data-lang="listing">invoice -> 34843
+date -> Tue Jan 23 01:00:00 CET 2001
+bill-to.family -> Dumars
+bill-to.given -> Chris
+bill-to.address.state -> MI
+bill-to.address.postal -> 48046
+bill-to.address.city -> Royal Oak
+bill-to.address.lines -> 458 Walkman Dr.
+Suite #292
+
+ship-to.given -> Chris
+ship-to.address.state -> MI
+ship-to.family -> Dumars
+ship-to.address.postal -> 48046
+ship-to.address.city -> Royal Oak
+ship-to.address.lines -> 458 Walkman Dr.
+Suite #292
+
+product -> {sku=BL394D, quantity=4, description=Basketball, price=450.0},{sku=BL4438H, quantity=1, description=Super Hoop, price=2392.0}
+_product.collection-type -> List
+
+tax -> 251.42
+total -> 4443.52
+comments -> Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div></p>
+
+ <hr />
+ </div>
+ </div>
+ <div>
+ <div id="push"></div>
+
+ <div id="footer">
+ <div class="container">
+ <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a>
+ | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a>
+ at <span>2018-04-26</span> |
+ <a class="twitter-follow-button" data-show-count="false" href="https://twitter.com/tamayaconf">Follow @tamayaconf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p>
+ <b>Disclaimer</b>
+ Apache Tamaya (incubating) is an effort undergoing
+ incubation at
+ The Apache Software Foundation (ASF), sponsored by
+ the name of Apache Incubator. Incubation is required of
+ all newly accepted projects until a further review indicates
+ that the infrastructure, communications, and decision making
+ process have stabilized in a manner consistent with other
+ successful ASF projects. While incubation status is not
+ necessarily a reflection of the completeness or stability of
+ the code, it does indicate that the project has yet to
+ be fully endorsed by the ASF.
+ Apache, Apache Tamaya, and the Apache Tamaya logo are registered trademarks or trademarks of The Apache Software Foundation in the U.S. and/or other countries.<br />
+ <a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
+ <img class="incubator-logo" src="../../logos/apache-incubator.png"/>
+ </a>
+ </p>
+ </div>
+ </div>
+
+ <!-- Le javascript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="../../js/jquery-1.11.1.min.js"></script>
+ <script src="../../js/bootstrap.min.js"></script>
+ <script src="../../js/prettify.js"></script>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8e3904a8/documentation-new/quickstart.html
----------------------------------------------------------------------
diff --git a/documentation-new/quickstart.html b/documentation-new/quickstart.html
new file mode 100644
index 0000000..9b86d67
--- /dev/null
+++ b/documentation-new/quickstart.html
@@ -0,0 +1,472 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8"/>
+ <title>Tamaya Incubator</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta name="description" content=""/>
+ <meta name="author" content=""/>
+ <meta name="keywords" content=""/>
+ <meta name="generator" content="'JBake '+'${version}"/>
+
+ <!-- Le styles -->
+ <link href="../css/bootstrap.min.css" rel="stylesheet"/>
+ <link href="../css/asciidoctor.css" rel="stylesheet"/>
+ <link href="../css/base.css" rel="stylesheet"/>
+ <link href="../css/prettify.css" rel="stylesheet"/>
+
+ <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+ <!--[if lt IE 9]>
+ <script src="../js/html5shiv.min.js"></script>
+ <![endif]-->
+
+ <!-- Fav and touch icons from ASF -->
+ <link rel="shortcut icon" href="../favicon.ico"/>
+ <link rel="apple-touch-icon" sizes="57x57" href="../favicons/apple-touch-icon-57x57.png"/>
+ <link rel="apple-touch-icon" sizes="60x60" href="../favicons/apple-touch-icon-60x60.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="../favicons/apple-touch-icon-72x72.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="../favicons/apple-touch-icon-76x76.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="../favicons/apple-touch-icon-114x114.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="../favicons/apple-touch-icon-120x120.png"/>
+ <link rel="apple-touch-icon" sizes="144x144" href="../favicons/apple-touch-icon-144x144.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="../favicons/apple-touch-icon-152x152.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="../favicons/apple-touch-icon-180x180.png"/>
+ <link rel="icon" type="image/png" href="../favicons/favicon-32x32.png" sizes="32x32"/>
+ <link rel="icon" type="image/png" href="../favicons/favicon-194x194.png" sizes="194x194"/>
+ <link rel="icon" type="image/png" href="../favicons/favicon-96x96.png" sizes="96x96"/>
+ <link rel="icon" type="image/png" href="../favicons/android-chrome-192x192.png" sizes="192x192"/>
+ <link rel="icon" type="image/png" href="../favicons/favicon-16x16.png" sizes="16x16"/>
+ <link rel="manifest" href="../favicons/manifest.json"/>
+ <link rel="shortcut icon" href="../favicons/favicon.ico"/>
+ <meta name="msapplication-TileColor" content="#603cba"/>
+ <meta name="msapplication-TileImage" content="../favicons/mstile-144x144.png"/>
+ <meta name="msapplication-config" content="../favicons/browserconfig.xml"/>
+ <meta name="theme-color" content="#303284"/>
+ </head>
+ <body onload="prettyPrint()">
+ <div id="wrap">
+ <div>
+
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-default navbar-fixed-top" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="../index.html">Apache Tamaya (incubating)</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="../start.html">Tamaya in 5 minutes</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../documentation/usecases.html">Use Cases and Requirements</a></li>
+ <li><a href="../documentation/quickstart.html">Quickstart</a></li>
+ <li><a href="../documentation/api.html">API</a></li>
+ <li><a href="../documentation/core.html">Core</a></li>
+ <li><a href="../documentation/extensions.html">Extension Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../apidocs/stable/index.html">Javadoc 0.3-incubating (release/stable)</a></li>
+ <li><a href="../apidocs/development/index.html">Javadoc 0.4-incubating-SNAPSHOT (development)</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../development/source.html">Sources</a></li>
+ <li><a href="../development/community.html">Community</a></li>
+ <li><a href="../development/team.html">Project Team</a></li>
+ <li><a target="_blank" href="https://builds.apache.org/view/S-Z/view/Tamaya/">CI / ASF Jenkins</a></li>
+ <li><a target="_blank" href="https://issues.apache.org/jira/browse/TAMAYA">Issues / ASF Jira</a></li>
+ <li><a href="../devguide.html">Development Guide</a></li>
+ <li><a href="../release-guide.html">Release Guide</a></li>
+ <li class="divider"></li>
+ <li><a href="../development/possible-contributions.html">Possible Contributions</a></li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="../download.html">Download</a></li>
+ <li><a href="../history.html">Release History</a></li>
+ </ul>
+ </li>
+<!-- Example:
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="#">Action</a></li>
+ <li><a href="#">Another action</a></li>
+ <li><a href="#">Something else here</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">Nav header</li>
+ <li><a href="#">Separated link</a></li>
+ <li><a href="#">One more separated link</a></li>
+ </ul>
+ </li>
+-->
+ <li><a href="../sitemap.xml">Sitemap</a></li>
+ <li><a href="../feed.xml">Subscribe</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+
+ </div>
+ <div class="container">
+
+ <div class="page-header">
+ <h1></h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div class="sect1">
+<h2 id="_apache_tamaya_quickstart">Apache Tamaya: Quickstart</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The fastest way to start with Tamaya is just using the <em>Core</em> implementation,
+implementing the <strong>Config JSR API</strong> in a minimalistic way. For that add the following
+Maven dependency to your project:</p>
+</div>
+<div class="sect2">
+<h3 id="_adding_the_tamaya_dependency">Adding the Tamaya Dependency</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <groupId>org.apache.tamaya</groupId>
+ <artifactId>tamaya-core</artifactId>
+ <version>0.4-incubating-SNAPSHOT</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_start_coding">Start Coding</h3>
+<div class="paragraph">
+<p>In your Java code you can directly access configuration from the API. In most cases it is recommended
+to provide the default values when accessing the configuration:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">Configuration config = ConfigProvider.getConfig();
+
+String aTextValue = config.getOptionalValue("my.value.key", String.class).orElse("N/A");
+int aNumericValue = config.getOptionalValue("my.numValueKey", Integer.class).orElse(15 /* default */);
+BigDecimal bdValue = config.getOptionalValue("my.BD.value", BigDecimal.class).orElse(BigDecimal.valueOf(120));</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_add_define_your_configuration_data">Add/define your configuration data</h3>
+<div class="paragraph">
+<p>As seen you can immedeatly start working with your configuration backend, without adding any kind of
+default configuration. Nevertheless the <em>core</em> implementation also comes with a <em>default</em> mechanism,
+where you can store your configuration as .properties in your classpath:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code>META-INF/javaconfig.properties</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Additionally also system properties are taken into account, hereby overriding the <em>default</em> properties.
+Overall Tamaya by default defines the following configuration model per default (most significant first):</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Environment Properties</p>
+</li>
+<li>
+<p>System Properties</p>
+</li>
+<li>
+<p><code>META-INF/javaconfig.properties</code></p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_advanced_topics">Advanced Topics</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_multiple_configuration_files">Multiple configuration files</h3>
+<div class="paragraph">
+<p>By default you can provide multiple <code>javaconfig.properties</code> files, e.g. as part
+of multiple jars loaded into your system. The system creates one
+<code>ConfigSource</code> for each file found on the classpath. All <code>ConfigSource</code>
+instances created are ordered by their precedence.</p>
+</div>
+<div class="paragraph">
+<p>By default the precendence of a ConfigSource is evaluated based on an <em>ordinal</em> value
+calculated as follows:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>the systems checks for a <code>config.ordinal</code> configuration value and tries to convert to
+an <code>int</code> ordinal value.</p>
+</li>
+<li>
+<p>the systems checks if the config source has a method int getOrdinal(). If present
+the result is used as ordinal.</p>
+</li>
+<li>
+<p>the systems checks if the config source has a <code>@Priority</code> annotation and uses the
+annotation’s value as ordinal.</p>
+</li>
+<li>
+<p>if all of the above fails, 0 is assumed as ordinal.</p>
+</li>
+</ol>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+Since evaluation of the <code>config.ordinal</code> is always done first, it is possible to change
+ the ordinal value by adding a corresponding configuration entry to a config source.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Tamaya Core uses the following default ordinals (see also the ConfigJSR spec):</p>
+</div>
+<table class="tableblock frame-all grid-all" style="width: 70%;">
+<colgroup>
+<col style="width: 75%;">
+<col style="width: 25%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Source</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ordinal</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">System Properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">400</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Environment Properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">300</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Properties from <code>META-INF/javaconfig.properties</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">100</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>That means that the value of a configuration variable <code>x</code> passed as <code>-Dx=yes</code> has
+a higher precedence then the entry for configuration variable <code>x</code> specified in
+<code>META-INF/javaconfig.properties</code> as <code>x=no</code>.</p>
+</div>
+<div class="paragraph">
+<p>These ordinal values can be either hardcoded, or be dynamically
+configurable as key within each configuration resource. The ladder can be done by defining a special
+Tamaya ordinal value as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code># override default ordinal for property files
+config.ordinal=123</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This assigns an ordinal of 123 to each entry in that config source providing this configuration
+properties.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_using_additional_features_of_tamaya">Using additional features of Tamaya</h3>
+<div class="paragraph">
+<p>There many modules that extend the capabilities of
+Tamaya and the ConfigJSR. These modules doe not depend on core, so alternative
+implementations of the Tamaya API should work similarly. Following a
+small extract of most important modules available.
+Refer to <a href="extensions/extensions.html">this list</a> for a complete
+overview.</p>
+</div>
+<div class="sect3">
+<h4 id="_dynamic_resolution_and_value_placeholders">Dynamic Resolution and Value Placeholders</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <artifactId>org.apache.tamaya.ext</id>
+ <artifactId>tamaya-resolver</artifactId>
+ <version>0.4-incubating-SNAPSHOT</version>
+</dependency></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>With that it is possible to define values with Unix styled placeholders that are
+resolved on configuration access, e.g.
+<code>mykey=my${dynamicValue}ยด. For further details refer to the module documentation.
+This module also provides a `Resolver</code> singleton:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">String myExpression = ...;
+String resolved = Resolver.evaluateExpression(myExpression);</code></pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ant_styled_path_resolution_of_resources">Ant-styled Path Resolution of Resources</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <artifactId>org.apache.tamaya.ext</id>
+ <artifactId>tamaya-resolution</artifactId>
+ <version>0.4-incubating-SNAPSHOT</version>
+</dependency></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This module provides a <code>Resolver</code> singleton that allows to
+resolve configuration resources using a ant-styled resource
+description, e.g.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml">Collection<URL> urls = ResourceResolver.getResources("META-INF/cfg/**/*.properties");</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For further details refer to the module documentation.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_configuration_injection">Configuration Injection</h4>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <artifactId>org.apache.tamaya.ext</id>
+ <artifactId>tamaya-inject</artifactId>
+ <version>{tamaya_version_development}</version>
+</dependency></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>With this extension you can let Tamaya inject configuration into instances of
+annotated classes or let Tamaya implement a configuration template.</p>
+</div>
+<div class="paragraph">
+<p>Corresponding configuration:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml">public class MyType {
+ @Config("my.key")
+ private String typeName;
+
+ public String getName() {
+ return name;
+ }
+}
+
+MyType type = new MyType();
+ConfigurationInjector.configure(type);</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Or the same as template:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml">public interface MyTypeTemplate {
+ @Config("my.key")
+ public String getName();
+}
+
+MyTypeTemplate type = ConfigurationInjector.createTemplate(MyTypeTemplate.class);</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Currently the following resolvers are available:</p>
+</div>
+<table class="tableblock frame-all grid-all" style="width: 60%;">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 80%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Conf</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Cross-reference to another configuration entry</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">URL</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Referencing a resource addressable by an URL.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">File</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Reference to a file, replacing the expression with the file’s text value.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Resource</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Reference to classpath resource, replacing the expression with the resource’s text value.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</div></p>
+
+ <hr />
+ </div>
+ </div>
+ <div>
+ <div id="push"></div>
+
+ <div id="footer">
+ <div class="container">
+ <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a>
+ | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a>
+ at <span>2018-04-26</span> |
+ <a class="twitter-follow-button" data-show-count="false" href="https://twitter.com/tamayaconf">Follow @tamayaconf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p>
+ <b>Disclaimer</b>
+ Apache Tamaya (incubating) is an effort undergoing
+ incubation at
+ The Apache Software Foundation (ASF), sponsored by
+ the name of Apache Incubator. Incubation is required of
+ all newly accepted projects until a further review indicates
+ that the infrastructure, communications, and decision making
+ process have stabilized in a manner consistent with other
+ successful ASF projects. While incubation status is not
+ necessarily a reflection of the completeness or stability of
+ the code, it does indicate that the project has yet to
+ be fully endorsed by the ASF.
+ Apache, Apache Tamaya, and the Apache Tamaya logo are registered trademarks or trademarks of The Apache Software Foundation in the U.S. and/or other countries.<br />
+ <a href="https://incubator.apache.org/guides/website.html" style="border:0px;" target="_target">
+ <img class="incubator-logo" src="../logos/apache-incubator.png"/>
+ </a>
+ </p>
+ </div>
+ </div>
+
+ <!-- Le javascript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="../js/jquery-1.11.1.min.js"></script>
+ <script src="../js/bootstrap.min.js"></script>
+ <script src="../js/prettify.js"></script>
+ </div>
+ </body>
+</html>