blob: 948be0284141e13b9f7857d4f437bf235c9a17d7 [file] [log] [blame]
<!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-09-06</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">&lt;dependency&gt;
&lt;groupId&gt;org.apache.tamaya.ext&lt;/groupId&gt;
&lt;artifactId&gt;tamaya-server&lt;/artifactId&gt;
&lt;version&gt;{tamaya_version}&lt;/version&gt;
&lt;/dependency&gt;</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>&lt;servlet&gt;
&lt;servlet-name&gt;config-servlet&lt;/servlet-name&gt;
&lt;servlet-class&gt;org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet&lt;/servlet-class&gt;
&lt;init-params&gt;
&lt;init-param key="javax.ws.rs.Application"&gt;org.apache.tamaya.server.Server$ResourceLoader&lt;/init-param&gt;
&lt;/init-params&gt;
&lt;/servlet&gt;</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">&lt;configuration&gt;
&lt;entry key="java.vendor.url"&gt;http://java.oracle.com/&lt;/entry&gt;
&lt;entry key="java.vendor.url.bug"&gt;http://bugreport.sun.com/bugreport/&lt;/entry&gt;
&lt;entry key="java.vm.info"&gt;mixed mode&lt;/entry&gt;
&lt;entry key="java.vm.name"&gt;Java HotSpot(TM) 64-Bit Server VM&lt;/entry&gt;
&lt;entry key="java.vm.specification.name"&gt;Java Virtual Machine Specification&lt;/entry&gt;
&lt;entry key="java.vm.specification.vendor"&gt;Oracle Corporation&lt;/entry&gt;
&lt;entry key="java.vm.specification.version"&gt;1.8&lt;/entry&gt;
&lt;entry key="java.vm.vendor"&gt;Oracle Corporation&lt;/entry&gt;
&lt;entry key="java.vm.version"&gt;25.45-b02&lt;/entry&gt;
&lt;entry key="sun.arch.data.model"&gt;64&lt;/entry&gt;
&lt;entry key="sun.boot.class.path"&gt;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&lt;/entry&gt;
&lt;entry key="sun.boot.library.path"&gt;C:\apps\jdk18\jre\bin&lt;/entry&gt;
&lt;entry key="sun.cpu.endian"&gt;little&lt;/entry&gt;
&lt;entry key="sun.cpu.isalist"&gt;amd64&lt;/entry&gt;
&lt;entry key="sun.desktop"&gt;windows&lt;/entry&gt;
&lt;entry key="sun.io.unicode.encoding"&gt;UnicodeLittle&lt;/entry&gt;
&lt;entry key="sun.java.command"&gt;com.intellij.rt.execution.application.AppMain org.apache.tamaya.examples.remote.server.Start&lt;/entry&gt;
&lt;entry key="sun.java.launcher"&gt;SUN_STANDARD&lt;/entry&gt;
&lt;entry key="sun.jnu.encoding"&gt;Cp1252&lt;/entry&gt;
&lt;entry key="sun.management.compiler"&gt;HotSpot 64-Bit Tiered Compilers&lt;/entry&gt;
&lt;entry key="sun.os.patch.level"&gt;&lt;/entry&gt;
&lt;entry key="_class"&gt;org.apache.tamaya.functions.FilteredConfiguration&lt;/entry&gt;
&lt;entry key="_info.filter"&gt;java.v,sun&lt;/entry&gt;
&lt;entry key="_info.format"&gt;application/xml&lt;/entry&gt;
&lt;entry key="_info.timestamp"&gt;1441463383687&lt;/entry&gt;
&lt;entry key="_timestamp"&gt;1441463383687&lt;/entry&gt;
&lt;entry key="_type"&gt;Configuration&lt;/entry&gt;
&lt;/configuration&gt;</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">&lt;html&gt;
&lt;head&gt;&lt;title&gt;System Configuration&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Sysem Configuration&lt;/h1&gt;
&lt;p&gt;This view shows the system configuration of devbox-win at Sat Sep 05 16:30:59 CEST 2015.&lt;/p&gt;&lt;pre&gt;
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
&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;</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">&copy; 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.6.1</span></a>
at <span>2018-11-02</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.<br />
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" style="height: 50px;"/>
</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>