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:28 UTC
[04/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_remote.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_remote.html b/documentation-new/extensions/mod_remote.html
new file mode 100644
index 0000000..6df12bd
--- /dev/null
+++ b/documentation-new/extensions/mod_remote.html
@@ -0,0 +1,291 @@
+<!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: Remote Configuration</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: Remote Configuration</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="Remote">Tamaya Remote Configuration (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>Remote</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>Remote</em> provides support for reading configuration from remote resources. It provides
+out-of-the-box support for reading scoped configuration from a Tamaya configuration server as
+provided with the Tamaya <em>server</em> module .</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 not run on Java 8 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To use remote 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-remote</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_reading_remote_configuration_from_a_tamaya_configuration_server">Reading Remote configuration from a Tamaya Configuration Server</h3>
+<div class="paragraph">
+<p>The remote module allows reading JSON formatted configuration as provided by the Tamaya <em>server</em> extension . The JSON
+format used looks as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-json" data-lang="json">{
+ "java.vendor.url": "http://java.oracle.com/",
+ "java.vendor.url.bug": "http://bugreport.sun.com/bugreport/",
+ "java.vm.info": "mixed mode",
+ "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
+ "java.vm.specification.name": "Java Virtual Machine Specification",
+ "java.vm.specification.vendor": "Oracle Corporation",
+ "java.vm.specification.version": "1.8",
+ "java.vm.vendor": "Oracle Corporation",
+ "java.vm.version": "25.45-b02",
+ "sun.arch.data.model": "64",
+ "sun.boot.class.path": "C:\apps\jdk18\jre\lib\resources.jar;C:\apps\jdk18\jre\lib\rt.jar;C:\apps\jdk18\jre\lib\sunrsasign.jar;C:\apps\jdk18\jre\lib\jsse.jar;C:\apps\jdk18\jre\lib\jce.jar;C:\apps\jdk18\jre\lib\charsets.jar;C:\apps\jdk18\jre\lib\jfr.jar;C:\apps\jdk18\jre\classes",
+ "sun.boot.library.path": "C:\apps\jdk18\jre\bin",
+ "sun.cpu.endian": "little",
+ "sun.cpu.isalist": "amd64",
+ "sun.desktop": "windows",
+ "sun.io.unicode.encoding": "UnicodeLittle",
+ "sun.java.command": "com.intellij.rt.execution.application.AppMain org.apache.tamaya.examples.remote.server.Start",
+ "sun.java.launcher": "SUN_STANDARD",
+ "sun.jnu.encoding": "Cp1252",
+ "sun.management.compiler": "HotSpot 64-Bit Tiered Compilers",
+ "sun.os.patch.level": "",
+ "_class": "org.apache.tamaya.functions.FilteredConfiguration",
+ "_info.filter": "java.v,sun",
+ "_info.format": "application/json",
+ "_info.timestamp": "1441463200571",
+ "_timestamp": "1441463200571",
+ "_type": "Configuration"
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Basically there are no constraints about they keys provided. By default Tamaya uses keys prefixed with
+'_' to identify meta-data entries, but this is not a required precondition.</p>
+</div>
+<div class="paragraph">
+<p>Finally such a remote configuration can be easily integrated by inheriting from the provided base
+class. Hereby a default ordinal must be defined and the protected Collection<URL> getAccessURLs()
+method must be implemented to define the URL from where the configuration should be accessible. Hereby
+multiple URLs can be provided, which are accesed in order as provided by the collection’s iterator. The
+first accessible URL determines the configuration read.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public class RemoteConfigSource extends BaseRemoteConfigSource{
+
+ @Override
+ protected Collection<URL> getAccessURLs() {
+ try {
+ String configServerUrl = System.getenv("CONFIG_SERVER");
+ if(configServerUrl==null){
+ configServerUrl = System.getProperty("configServer");
+ }
+ if(configServerUrl==null){
+ configServerUrl = "http://localhost:8888/config?scope=CLIENT&scopeId={clientId}&format=application/json";
+ }
+ System.out.println("Reading config from " + configServerUrl.replace("{clientId}", Client.getClientId()));
+ return Arrays.asList(new URL[]{new URL(configServerUrl.replace("{clientId}", Client.getClientId()))});
+ } catch (MalformedURLException e) {
+ Logger.getLogger(getClass().getName()).log(Level.WARNING, "Failed to configure remote config location,", e);
+ return Collections.emptySet();
+ }
+ }
+
+}</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/extensions/mod_resolver.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_resolver.html b/documentation-new/extensions/mod_resolver.html
new file mode 100644
index 0000000..f5ef5e9
--- /dev/null
+++ b/documentation-new/extensions/mod_resolver.html
@@ -0,0 +1,323 @@
+<!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: Resolver</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: Resolver</h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div class="sect1">
+<h2 id="Resolver">Tamaya Resolver (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>Resolver</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>Resolver</em> is an extension module. Refer to the <a href="../extensions.html">extensions documentation</a>
+for further details about modules.</p>
+</div>
+<div class="paragraph">
+<p>Tamaya Resolver provides a extendible dynamic resolution mechanism. It allows to use UNIX-styled (${...} placeholder
+expressions in your configuration values. The resolver hereby supports transitive resolution and also prevents
+cycles to loop endlessly.</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 benefit from dynamic value resolution you only must add the corresponding dependency to your module:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-resolver</artifactId>
+ <version>0.4-incubating-SNAPSHOT</version>
+</dependency></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The module automatically registers an according Filter that is automatically called, whenever a value
+is accessed.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_available_resolvers">Available Resolvers</h3>
+<div class="paragraph">
+<p>Currently the module defines the following resolvers:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<caption class="title">Table 1. Available Resolvers</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 50%;">
+<col style="width: 25%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Expression</em></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Description</em></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Example</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">conf:<configKey></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Reads another configKey and replaces the expression with the value found.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">conf-ref=${conf:anotherConf.entryKey}</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">resource:<resourceRef></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Reads a resource from the current classpath and replaces the expression with the given text content.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">cp-ref=${resource:Testresource.txt}</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">file:<fileRef></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Reads a resource from the current classpath and replaces the expression with the given text content.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">file-ref=${file:c:\myFile.txt}</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">url:<url></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Reads an URL and replaces the expression with the given text content.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">url-ref=${url:http://www.google.com}</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_spi_implementing_your_own_resolvers">SPI: Implementing your own Resolvers</h3>
+<div class="paragraph">
+<p>The module also provides a small SPI for adding your own resolver implementations. Basically the
+first and most important thing to do is implementing the ExpressionResolver interface:</p>
+</div>
+<div class="listingblock">
+<div class="title">Implementing a Custom Resolver</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public class PwdDecrypter implements ExpressionResolver {
+
+ @Override
+ public String getResolverPrefix() {
+ return "decrypt:";
+ }
+
+ @Override
+ public String evaluate(String expression) {
+ return decrypt(expression);
+ }
+
+ private String decrypt(String s) {
+ ...
+ }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Basically that is all you must do, after having registered the class with the ServiceLoader it will be found
+and loaded by the implementation. With that all expressions that start with the given prefix are passed to the
+resolver, so all the following expressions will be sent to the implementation:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" data-lang="listing">blabla ${decrypt:myname}
+blabla ${decrypt:myname} foo blabla ${decrypt:myname}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Hereby evaluation is repeated until no further change of values could be detetced. In case of a endless loop
+the evaluation is broken after a (configurable) number of cycles.</p>
+</div>
+<div class="paragraph">
+<p>Under the hood instances of ExpressionResolver are managed by an implementation of the ExpressionEvaluator
+interface:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public interface ExpressionEvaluator {
+ /**
+ * Evaluates the current expression.
+ * @param key the key, not null.
+ * @param value the value to be filtered/evaluated.
+ * @return the filtered/evaluated value, including null.
+ */
+ String evaluateExpression(String key, String value);
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Implementing and registering this interface gives you full control, but in most cases you should be fine with
+the default implementation in place.</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_resources.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_resources.html b/documentation-new/extensions/mod_resources.html
new file mode 100644
index 0000000..50b27ee
--- /dev/null
+++ b/documentation-new/extensions/mod_resources.html
@@ -0,0 +1,358 @@
+<!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: Resources</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: Resources</h1>
+ </div>
+
+ <p><em>2018-04-26</em></p>
+
+ <p><div class="sect1">
+<h2 id="Resources">Tamaya Resources (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>Resources</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>Resources</em> defines some additional tools to locate resources in your classpath or file system based on
+descriptive ant-styled resource patterns.</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 this module add the following dependency:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" data-lang="listing"><dependency>
+ <grooupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-resources</artifactId>
+ <version>0.4-incubating-SNAPSHOT</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_usage">Usage</h3>
+<div class="paragraph">
+<p>The module’s main entry point is the singleton class org.apache.tamaya.resource.ConfigResources. This class
+provides access to a ResourceResolver instance:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">ResourceResolver resolver = ConfigResources.getResourceResolver();</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public interface ResourceResolver {
+ Collection<URL> getResources(Collection<String> expressions) {...}
+ Collection<URL> getResources(String... expressions) {...}
+ Collection<URL> getResources(ClassLoader classLoader, String... expressions){...}
+ Collection<URL> getResources(ClassLoader classLoader, Collection<String> expressions);
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Hereby the methods allow to resolve expressions to a collection of URLs. In case the expression is also targeting the
+current classpath the target ClassLoader to be used can be passed additionally.</p>
+</div>
+<div class="paragraph">
+<p>The default implementation provides resource resolution mechanism similar to the functionality offered by Spring.
+So by default resources can be looked up</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>from files</p>
+</li>
+<li>
+<p>from the classpath</p>
+</li>
+<li>
+<p>optionally ant-styled expressions can be used.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_examples">Examples</h3>
+<div class="paragraph">
+<p>There are numerous ways how a resource pattern can be defined. Following the most important variants
+are listed:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-listing" data-lang="listing">// explicitly searching the file system
+file:myroot/aa?a/*.file
+file:myroot/b*/b?/*.file
+file:myroot/**/*.file
+
+// explicitly searching the classpath
+classpath:myroot/**/*.file
+classpath:javax/annotation/*.class
+classpath:javax/**/sql/*.class
+classpath:javax/annotation/**/R*.class
+classpath:javax/annotation/R?so*.class
+classpath:META-INF/maven/org.apache.geronimo.specs/**/*
+
+// search both classpath and files
+javax/annotation/*.class
+javax/**/sql/*.class
+javax/annotation/**/R*.class
+javax/annotation/R?so*.class
+META-INF/maven/org.apache.geronimo.specs/**/*
+myroot/**/*.file
+myroot/aa?a/*.file
+myroot/b*/b?/*.file</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Summarizing the resources module provides useful functionality that helps to locate resources on the file system and
+in the classpath. This can be used to implement PropertySourceProvider implementations that are based on
+corresponding resource path patterns instead of concrete files.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_overall_usage_example">Overall Usage Example</h3>
+<div class="paragraph">
+<p>Given the functionality we can easily implement a PropertySourceProvider that reads all files from a classpath
+location, hereby traversing down all folders:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public class PathBasedConfigSourceProvider implements ConfigSourceProvider {
+
+ @Override
+ public Iterable<ConfigSource> getConfigSources(ClassLoader classloader) {
+ List<PropertySource> propertySources = new ArrayList<>();
+ Collection<URL> resources = ConfigResources.getResourceResolver().getResources(classLoader, "META-INF/cfg/**/*.properties");
+ for(URL url:resources){
+ Properties props = new Properties();
+ try(InputStream is = url.openStream()){
+ props.load(is);
+ propertySources.add(new PropertiesBasedConfigSource(url.toString(), props));
+ }
+ catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ return propertySources;
+ }
+
+ private final static class PropertiesBasedConfigSource implements ConfigSource {
+ private String name;
+ private Map<String,String> properties = new HashMap<>();
+
+ public PropertiesBasedConfigSource(String name, Properties props) {
+ this.name = name;
+ props.forEach((k,v) -> this.properties.put(k.toString(), v.toString()));
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String get(String key) {
+ return properties.get(key);
+ }
+
+ @Override
+ public Map<String, String> getProperties() {
+ return properties;
+ }
+ }
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_spi">SPI</h3>
+<div class="paragraph">
+<p>The ResourceResolver that is returned by the ConfigResources singleton is determined by the
+current ServiceContext, by default you can replace the default implementation by registering an
+alternate implementation with an overriding @Priority annotation added using the ServiceLoader.</p>
+</div>
+<div class="paragraph">
+<p>Additionally a BaseResourceResolver class can be used to reduce the amount of code to be written
+on your own.</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_server.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_server.html b/documentation-new/extensions/mod_server.html
new file mode 100644
index 0000000..07964e7
--- /dev/null
+++ b/documentation-new/extensions/mod_server.html
@@ -0,0 +1,438 @@
+<!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 Server</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 Server</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="Server">Tamaya Configuration Server (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>Server</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>The Tamaya <em>Server</em> module provides support for providing scoped configuration using a http server serving JSON formatted
+configuration properties.</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 not run on Java 8 and beyond.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To benefit from configuration server 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-server</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_providing_configuration_using_the_tamaya_built_in_configuration_server">Providing configuration using the Tamaya Built-in Configuration Server</h3>
+<div class="paragraph">
+<p>The most simple way for providing configuration is to start the internal server:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">// using context path: '/', port 8085
+org.apache.tamaya.server.Server.start();
+
+// optionally pass the root context path and/or port:
+// org.apache.tamaya.server.Server.start(8088);
+// org.apache.tamaya.server.Server.start("/appconf", 7787);</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This will start a simple server instance that serves the following URL patterns:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>GET ${CONTEXT}/config provides access to the full configuration tree.</p>
+</li>
+<li>
+<p>GET ${CONTEXT}/config/filtered/${path} let you filter the configuration returned using regular expression (comma separated).
+E.g. ${CONTEXT}/config/filtered/java,sun will return all configuration entries starting with <em>java</em> and <em>sun</em>.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Additionally the server module has the following options implemented, which can be passed as additional, optional
+parameters:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>format allows to define the target format. By default the ACCEPT header of the http request is checked, but this
+setting can be explicitly controlled by passing this parameter explicitly. The value is the expected MIME type to be
+returned. By default the service supports the following types:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>text/html</p>
+</li>
+<li>
+<p>text/plain</p>
+</li>
+<li>
+<p>application/xml</p>
+</li>
+<li>
+<p>application/json</p>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_using_the_configuration_servlets">Using the Configuration Servlets</h3>
+<div class="paragraph">
+<p>You can also register a servlet, e.g. as follows;</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre><servlet>
+ <servlet-name>config-servlet</servlet-name>
+ <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
+ <init-params>
+ <init-param key="javax.ws.rs.Application">org.apache.tamaya.server.Server$ResourceLoader</init-param>
+ </init-params>
+</servlet></pre>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_formatting_used_by_default">Formatting used by Default</h4>
+<div class="paragraph">
+<p>The server module formats the configuration returned by default in the following variants:</p>
+</div>
+<div class="listingblock">
+<div class="title">Formatting for text/json</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-json" data-lang="json">{
+ "java.vendor.url": "http://java.oracle.com/",
+ "java.vendor.url.bug": "http://bugreport.sun.com/bugreport/",
+ "java.vm.info": "mixed mode",
+ "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
+ "java.vm.specification.name": "Java Virtual Machine Specification",
+ "java.vm.specification.vendor": "Oracle Corporation",
+ "java.vm.specification.version": "1.8",
+ "java.vm.vendor": "Oracle Corporation",
+ "java.vm.version": "25.45-b02",
+ "sun.arch.data.model": "64",
+ "sun.boot.class.path": "C:\apps\jdk18\jre\lib\resources.jar;C:\apps\jdk18\jre\lib\rt.jar;C:\apps\jdk18\jre\lib\sunrsasign.jar;C:\apps\jdk18\jre\lib\jsse.jar;C:\apps\jdk18\jre\lib\jce.jar;C:\apps\jdk18\jre\lib\charsets.jar;C:\apps\jdk18\jre\lib\jfr.jar;C:\apps\jdk18\jre\classes",
+ "sun.boot.library.path": "C:\apps\jdk18\jre\bin",
+ "sun.cpu.endian": "little",
+ "sun.cpu.isalist": "amd64",
+ "sun.desktop": "windows",
+ "sun.io.unicode.encoding": "UnicodeLittle",
+ "sun.java.command": "com.intellij.rt.execution.application.AppMain org.apache.tamaya.examples.remote.server.Start",
+ "sun.java.launcher": "SUN_STANDARD",
+ "sun.jnu.encoding": "Cp1252",
+ "sun.management.compiler": "HotSpot 64-Bit Tiered Compilers",
+ "sun.os.patch.level": "",
+ "_class": "org.apache.tamaya.functions.FilteredConfiguration",
+ "_info.filter": "java.v,sun",
+ "_info.format": "application/json",
+ "_info.timestamp": "1441463200571",
+ "_timestamp": "1441463200571",
+ "_type": "Configuration"
+}</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Formatting for application/xml</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><configuration>
+ <entry key="java.vendor.url">http://java.oracle.com/</entry>
+ <entry key="java.vendor.url.bug">http://bugreport.sun.com/bugreport/</entry>
+ <entry key="java.vm.info">mixed mode</entry>
+ <entry key="java.vm.name">Java HotSpot(TM) 64-Bit Server VM</entry>
+ <entry key="java.vm.specification.name">Java Virtual Machine Specification</entry>
+ <entry key="java.vm.specification.vendor">Oracle Corporation</entry>
+ <entry key="java.vm.specification.version">1.8</entry>
+ <entry key="java.vm.vendor">Oracle Corporation</entry>
+ <entry key="java.vm.version">25.45-b02</entry>
+ <entry key="sun.arch.data.model">64</entry>
+ <entry key="sun.boot.class.path">C:\apps\jdk18\jre\lib\resources.jar;C:\apps\jdk18\jre\lib\rt.jar;C:\apps\jdk18\jre\lib\sunrsasign.jar;C:\apps\jdk18\jre\lib\jsse.jar;C:\apps\jdk18\jre\lib\jce.jar;C:\apps\jdk18\jre\lib\charsets.jar;C:\apps\jdk18\jre\lib\jfr.jar;C:\apps\jdk18\jre\classes</entry>
+ <entry key="sun.boot.library.path">C:\apps\jdk18\jre\bin</entry>
+ <entry key="sun.cpu.endian">little</entry>
+ <entry key="sun.cpu.isalist">amd64</entry>
+ <entry key="sun.desktop">windows</entry>
+ <entry key="sun.io.unicode.encoding">UnicodeLittle</entry>
+ <entry key="sun.java.command">com.intellij.rt.execution.application.AppMain org.apache.tamaya.examples.remote.server.Start</entry>
+ <entry key="sun.java.launcher">SUN_STANDARD</entry>
+ <entry key="sun.jnu.encoding">Cp1252</entry>
+ <entry key="sun.management.compiler">HotSpot 64-Bit Tiered Compilers</entry>
+ <entry key="sun.os.patch.level"></entry>
+ <entry key="_class">org.apache.tamaya.functions.FilteredConfiguration</entry>
+ <entry key="_info.filter">java.v,sun</entry>
+ <entry key="_info.format">application/xml</entry>
+ <entry key="_info.timestamp">1441463383687</entry>
+ <entry key="_timestamp">1441463383687</entry>
+ <entry key="_type">Configuration</entry>
+</configuration></code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Formatting for text/plain</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-text" data-lang="text">Configuration:
+ java.vendor.url: http://java.oracle.com/,
+ java.vendor.url.bug: http://bugreport.sun.com/bugreport/,
+ java.vm.info: mixed mode,
+ java.vm.name: Java HotSpot(TM) 64-Bit Server VM,
+ java.vm.specification.name: Java Virtual Machine Specification,
+ java.vm.specification.vendor: Oracle Corporation,
+ java.vm.specification.version: 1.8,
+ java.vm.vendor: Oracle Corporation,
+ java.vm.version: 25.45-b02,
+ sun.arch.data.model: 64,
+ sun.boot.class.path: C:\apps\jdk18\jre\lib\resources.jar;C:\apps\jdk18\jre\lib\rt.jar;C:\apps\jdk18\jre\lib\sunrsasign.jar;C:\apps\jdk18\jre\lib\jsse.jar;C:\apps\jdk18\jre\lib\jce.jar;C:\apps\jdk18\jre\lib\charsets.jar;C:\apps\jdk18\jre\lib\jfr.jar;C:\apps\jdk18\jre\classes,
+ sun.boot.library.path: C:\apps\jdk18\jre\bin,
+ sun.cpu.endian: little,
+ sun.cpu.isalist: amd64,
+ sun.desktop: windows,
+ sun.io.unicode.encoding: UnicodeLittle,
+ sun.java.command: com.intellij.rt.execution.application.AppMain org.apache.tamaya.examples.remote.server.Start,
+ sun.java.launcher: SUN_STANDARD,
+ sun.jnu.encoding: Cp1252,
+ sun.management.compiler: HotSpot 64-Bit Tiered Compilers,
+ sun.os.patch.level: ,
+ _class: org.apache.tamaya.functions.FilteredConfiguration,
+ _info.filter: java.v,sun,
+ _info.format: text/plain,
+ _info.timestamp: 1441463082020,
+ _timestamp: 1441463082021,
+ _type: Configuration</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Formatting for application/html</div>
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-html" data-lang="html"><html>
+<head><title>System Configuration</title></head>
+<body>
+<h1>Sysem Configuration</h1>
+<p>This view shows the system configuration of devbox-win at Sat Sep 05 16:30:59 CEST 2015.</p><pre>
+Configuration:
+ java.vendor.url: http://java.oracle.com/,
+ java.vendor.url.bug: http://bugreport.sun.com/bugreport/,
+ java.vm.info: mixed mode,
+ java.vm.name: Java HotSpot(TM) 64-Bit Server VM,
+ java.vm.specification.name: Java Virtual Machine Specification,
+ java.vm.specification.vendor: Oracle Corporation,
+ java.vm.specification.version: 1.8,
+ java.vm.vendor: Oracle Corporation,
+ java.vm.version: 25.45-b02,
+ sun.arch.data.model: 64,
+ sun.boot.class.path: C:\apps\jdk18\jre\lib\resources.jar;C:\apps\jdk18\jre\lib\rt.jar;C:\apps\jdk18\jre\lib\sunrsasign.jar;C:\apps\jdk18\jre\lib\jsse.jar;C:\apps\jdk18\jre\lib\jce.jar;C:\apps\jdk18\jre\lib\charsets.jar;C:\apps\jdk18\jre\lib\jfr.jar;C:\apps\jdk18\jre\classes,
+ sun.boot.library.path: C:\apps\jdk18\jre\bin,
+ sun.cpu.endian: little,
+ sun.cpu.isalist: amd64,
+ sun.desktop: windows,
+ sun.io.unicode.encoding: UnicodeLittle,
+ sun.java.command: com.intellij.rt.execution.application.AppMain org.apache.tamaya.examples.remote.server.Start,
+ sun.java.launcher: SUN_STANDARD,
+ sun.jnu.encoding: Cp1252,
+ sun.management.compiler: HotSpot 64-Bit Tiered Compilers,
+ sun.os.patch.level: ,
+ _class: org.apache.tamaya.functions.FilteredConfiguration,
+ _info.filter: java.v,sun,
+ _info.format: text/html,
+ _info.timestamp: 1441463459653,
+ _timestamp: 1441463459654,
+ _type: Configuration
+</pre>
+</body>
+</html></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_spring.html
----------------------------------------------------------------------
diff --git a/documentation-new/extensions/mod_spring.html b/documentation-new/extensions/mod_spring.html
new file mode 100644
index 0000000..facf223
--- /dev/null
+++ b/documentation-new/extensions/mod_spring.html
@@ -0,0 +1,396 @@
+<!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: Spring Integration</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: Spring Integration</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="Spring">Tamaya Spring Integration (Extension Module)</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Tamaya <em>Spring</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>Spring</em> currently provides full integration with Spring and Spring Boot:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>A Spring @Configuration implementation that also provides a Tamaya based version of
+org.springframework.context.support.PropertySourcesPlaceholderConfigurer.</p>
+</li>
+<li>
+<p>org.apache.tamaya.integration.spring.TamayaEnvironment is the Tamaya based implementation of the Spring
+Environment interface.</p>
+</li>
+<li>
+<p>TamayaSpringPropertySource implements an additional Spring PropertySource.</p>
+</li>
+<li>
+<p>Finally org.apache.tamaya.integration.spring.SpringConfigInjectionPostProcessor implements a Bean PostProcessor,
+which adds all the fully fledged Tamaya configuration capabilities to Spring.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_compatibility">Compatibility</h3>
+<div class="paragraph">
+<p>Both modules are based on Java 8, so they will run on Java 8 and beyond. The extension shown here works in
+Spring Framework as well as Spring Boot.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_installation">Installation</h3>
+<div class="paragraph">
+<p>To benefit from Tamaya Spring integration add the following dependencies 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-spring</artifactId>
+ <version>{tamaya_version}</version>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_registering_tamaya_spring_configuration">Registering Tamaya Spring Configuration</h3>
+<div class="paragraph">
+<p>Basically to activate the Tamaya Spring support the most simple thing is to a enable the Tamaya package for being
+scanned for Spring components, e.g. using by annotation:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@SpringBootApplication
+@ComponentScan({"org.apache.tamaya.integration.spring"})
+public class SampleWebFreeMarkerApplication {
+
+ public static void main(String[] args) throws Exception {
+ SpringApplication.run(SampleWebFreeMarkerApplication.class, args);
+ }
+
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Of course, you can still use Spring’s XML configuration in a similar way:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="org.apache.tamaya.integration.spring"/>
+
+ ...
+
+</beans></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Though not recommended you can explicitly register the Tamaya related beans in your context configuration by hand:
+files:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><bean id="tamayaInjectionProcessor" name="tamayaInjectionProcessor" class="org.apache.tamaya.integration.spring.SpringConfigInjectionPostProcessor"/>
+<bean id="tamayaConfigProvider" name="tamayaConfigProvider" class="org.apache.tamaya.integration.spring.TamayaSpringConfig"/></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_configuring_your_context">Configuring your Context</h3>
+<div class="paragraph">
+<p>After activation you can use Tamaya as a backend for property resolution, e.g. propertyValue
+is resolved from the current Tamaya configuration. See example below:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><bean id="configuredBean" name="configuredBean" class="org.apache.tamaya.integration.spring.ConfiguredSpringBean">
+ <property name="message" value="${propertyValue}"/>
+</bean></code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_configuring_your_beans">Configuring your Beans</h3>
+<div class="paragraph">
+<p>Similarly you can inject any kind of configuration as supported by Tamaya into your Spring managed beans:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@ConfigDefaultSections("app.root") // optional <b class="conum">(1)</b>
+@Component
+public class ConfiguredSpringBean {
+
+ @Value("${application.message:Hello World}") <b class="conum">(2)</b>
+ private String message;
+
+ @Autowired
+ private Environment env;
+
+ @ConfigProperty(key = "alternateMessage", required = false) <b class="conum">(3)</b>
+ private String anotherMessage = "N/A";
+
+ @ConfigProperty(key="java.version")
+ private String javaVersion;
+
+ @ConfigProperty(key="number", defaultValue="23") <b class="conum">(4)</b>
+ @ConfigFallbackKeys=({"testNum", "[notavailable]"}) <b class="conum">(5)</b>
+ private int testNumber;
+
+ ...
+}</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>You can configure default section prefixes. This is an optional feature.</p>
+</li>
+<li>
+<p>Tamaya does not require you to change your code. You can still work with
+Spring injection for your configuration, but Tamaya will override Spring
+configuration by default.</p>
+</li>
+<li>
+<p>You can also define entries as optional, which allows you to perform
+default inialization using Java idoms.</p>
+</li>
+<li>
+<p>Tamaya allows you to define an ordered list of key candidates, which are
+combined with the section prefix, if present, to the full keys. Keys added
+in brackets ([]) are interpreted as absolute keys, so the example above
+the key candidate list evaluates to app.root.number", "app.root.testNum",
+"notavailable".</p>
+</li>
+<li>
+<p>You can configure default values used, if no other value can be evaluated
+for the given keyset.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Summarizing you get all the nice features of Tamaya out of the box running
+with your Spring code.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_working_with_dynamic_values">Working with Dynamic Values</h3>
+<div class="paragraph">
+<p>Integration into Spring also includes for support for <em>dynamic values</em>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">@ConfigProperty(key = "foreground.color", required = false, defaultValue = "#DDDDDD")
+private DynamicValue<Color> foregroundColor;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Dynamic values are a very flexible mechanism for managing configuration changes.
+You can even use an update policy to define how you want to handle configuration
+changes for your configuration parameter:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="prettyprint highlight"><code class="language-java" data-lang="java">foregroundColor.setUpdatePolicy(UpdatePolicy.IMMEDEATE);
+foregroundColor.addPropertyChangeListener(() -> {
+ System.out.println("New forground color: " + foregroundColor.get();
+});</code></pre>
+</div>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+For a full description of Tamaya’s injection API please
+ refer to the <a href="extensions/mod_injection.html">corresponding documentation</a>.
+</td>
+</tr>
+</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>