http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8158d464/documentation/extensions/mod_collections.html ---------------------------------------------------------------------- diff --git a/documentation/extensions/mod_collections.html b/documentation/extensions/mod_collections.html deleted file mode 100644 index 619a817..0000000 --- a/documentation/extensions/mod_collections.html +++ /dev/null @@ -1,470 +0,0 @@ -<!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&#8201;&#8212;&#8201;Extension: Collection Support</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/index.html">Javadoc null (external)</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="../../development/source.html">Sources</a></li> - <li><a href="../../development/community.html">Community</a></li> - <li><a href="../../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&#8201;&#8212;&#8201;Extension: Collection Support</h1> - </div> - - <p><em>2017-01-09</em></p> - - <p><div id="preamble"> -<div class="sectionbody"> -<!-- toc disabled --> -</div> -</div> -<div class="sect1"> -<h2 id="Optional">Tamaya Collection Support (Extension Module)</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_overview">Overview</h3> -<div class="paragraph"> -<p>All configuration in Tamaya is expressed as simple key, value pairs. Nevertheless this concept allows similarly -the modelling of collection typed values such as lists, sets, maps or simple collections of things. The Tamaya -Collections extension adds this functionality to the Tamaya eco-system.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_compatibility">Compatibility</h3> -<div class="paragraph"> -<p>The module is based on Java 7, so it will not run on Java 7 and beyond.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_installation">Installation</h3> -<div class="paragraph"> -<p>To use Tamaya collection 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-collections</artifactId> - <version>{tamaya_version}</version> -</dependency></code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_overview_2">Overview</h3> -<div class="paragraph"> -<p>Tamaya Collections adds PropertyConverter implementations that are able to access configuration data -as lists, maps or sets. By default this works out of the box as easy as accessing any other type of -configuration data, e.g.</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">Configuration config = ConfigurationProvider.getConfiguration(); - -// Without any content specification, a list of String is returned. -List<String> simpleList = config.get("my.list.config.entry", List.class); - -// Using a TypeLiteral allows to use every convertible sub type supported by the system. -List<Integer> intList = config.get("my.list.config.entry", new TypeLiteral<List<Integer>>(){});</code></pre> -</div> -</div> -<div class="paragraph"> -<p>Configuration in that case, by default, is a simple comma-separated list of entries, e.g.</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties">my.list.config.entry=1,34454,23,344545,3445</code></pre> -</div> -</div> -<div class="paragraph"> -<p>Additionally the module allows adding additional meta-entries, which allows to tweak some of the -inner-workings, e.g.</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>using your own PropertyConverter implementation for parsing entries.</p> -</li> -<li> -<p>specifying a custom separator String to be used to split the items (default is {{','}}.</p> -</li> -<li> -<p>specifying a custom separator String to be used to split key/value paris when parsing map entries.</p> -</li> -<li> -<p>specifying the implementation type of the collection instance to be returned.</p> -</li> -<li> -<p>specifying if the resulting collection should be returned as a modifiable collection.</p> -</li> -</ul> -</div> -</div> -<div class="sect2"> -<h3 id="_supported_types">Supported Types</h3> -<div class="paragraph"> -<p>This module supports the following types:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>java.util.Collection</p> -</li> -<li> -<p>java.util.List</p> -</li> -<li> -<p>java.util.ArrayList</p> -</li> -<li> -<p>java.util.LinkedList</p> -</li> -<li> -<p>java.util.Set</p> -</li> -<li> -<p>java.util.SortedSet</p> -</li> -<li> -<p>java.util.TreeSet</p> -</li> -<li> -<p>java.util.HashSet</p> -</li> -<li> -<p>java.util.Map</p> -</li> -<li> -<p>java.util.SortedMap</p> -</li> -<li> -<p>java.util.HashMap</p> -</li> -<li> -<p>java.util.TreeMap</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>Hereby the type is determined primarly by the parameter type accessed, e.g. -config.get("mylist", ArrayList.class) will always return an ArrayList -as result.</p> -</div> -<div class="sect3"> -<h4 id="_configuring_the_target_implementation_type">Configuring the target implementation type</h4> -<div class="paragraph"> -<p>Tamaya Collections allows you to configure the target collection type by adding the -following meta-configuration entry (shown for the mylist entry). Hereby the package part java.util. -can be ommitted:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties">mylist=a,b,c -_mylist.collection-type=LinkedList</code></pre> -</div> -</div> -<div class="paragraph"> -<p>When calling config.get("mylist", ArrayList.class) this parameter does not have any effect, so you will still -get an ArrayList as a result. However when you call config.get("mylist", List.class) you will -get a LinkedList as implementation type.</p> -</div> -<div class="paragraph"> -<p>This mechanism similarly applies to all kind of collections, so you can use it similarly to define the implementation -type returned when accessing List, Map or Collection.</p> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_collecting_configuration_entries_instead_of_overriding">Collecting Configuration Entries instead of Overriding</h3> -<div class="paragraph"> -<p>By default Tamaya applies always an overriding CombinationPolicy, where only the configuration entry for -the most significant configuration entry is used. In case of collections (and maybe also other use cases), -overriding is not always the mechanism of choice. E.g. when you want to have all entries added to your -configuration to be <strong>combined</strong> to a new entry containing all values provided by any property sources.</p> -</div> -<div class="paragraph"> -<p>Therefore Tamaya Collections also provides a more sophistiated CombinationPolicy (automatically configured) -that allows to adapt the way how configuration entries are combined. All you must do is declaring -the mechanism to be applied by an according meta-configuration parameter, e.g. for my.list your config may -look as follows:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># from PropertSource 1 -my.list=1,2,3 - -# from PropertSource 2 -my.list=4,5,6 - -# without any additional meta-info these entries would be combined to -my.list=4,5,6</code></pre> -</div> -</div> -<div class="paragraph"> -<p>With Tamaya Collections you can now configure the combination policy as follows:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># use one of the default policies: override / collect -_my.list.combination-policy=collect - -# use an custom CombinationPolicy to combine the values -_my.list.combination-policy=com.mycomp.app.MyCombincationPolicy</code></pre> -</div> -</div> -<div class="paragraph"> -<p>So declaring the collect policy the resulting raw output of the entry looks as follows:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># result when applying the collect policy: -my.list=1,2,3,4,5,6</code></pre> -</div> -</div> -<div class="paragraph"> -<p>The customizable policy mechanism of Tamaya Collections also honors the item-separator meta-configuration -parameter explained later in this document.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_format_of_collection_configuration">Format of Collection Configuration</h3> -<div class="paragraph"> -<p>By default collections are modelled as simple String values, that are tokenized into individual parts using a -defined item-separator (by default ','). So a given configuration entry of 1,2,3 is mapped to "1","2","3". -If the target context type is something different than String the smae conversion logic is used as when mapping -configuration parameters directly to non-String target types (implemented as +PropertyConverter classes, manahed -within the current ConfigurationContext. The procedure is identical for all collection types, including Map types, -with the difference that each token in the list is parsed once more for separating it into a key and a value. -The default separator for map entries hereby is "::". Map keys, as of now, are always of type String, whereas -for values the same logic is applied as for non-map collection types.</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># a list, using the default format -list=1,2,3,4,5,6 - -# a map, using the default format -map=a::b, c::d</code></pre> -</div> -</div> -<div class="sect3"> -<h4 id="_trimming_of_entries">Trimming of entries</h4> -<div class="paragraph"> -<p>By default all tokens parsed are trimmed <em>before</em> adding them to the final collection. In case of map entries this is -also the case for key/value entries. So the following configuration results in the identical values for -list1,list2 and map1,map2:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># a list, using the default format -list1=1,2,3,4,5,6 -list2=1, 2, 3, 4, 5, 6 - -# a map, using the default format -map1=a::b, c::d -map2=a :: b, c :: d</code></pre> -</div> -</div> -<div class="paragraph"> -<p>Nevertheless truncation can be controlled by the usage of brackets, e.g. the last list or map entry will have a single -space character as value:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># a list, with a ' ' value at the end -list3=1, 2, 3, 4, 5, [ ] - -# a map, with a ' ' value for key '0' -map3=1 :: a, 2 :: b, 0::[ ]</code></pre> -</div> -</div> -<div class="paragraph"> -<p>Hereby \[ escapes the sequence.</p> -</div> -</div> -<div class="sect3"> -<h4 id="_customizing_the_format">Customizing the format</h4> -<div class="paragraph"> -<p>The item and entry separators (by default ',' and "::") can be customized by setting corresponding meta-data -entries as follows, resulting in the same values as in the prevoius listing:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># a list, with a ' ' value at the end -list3=1__2__3__ 4__ 5__[ ] -_list3.item-separator=__ - -# a map, with a ' ' value for key '0' -map3=1->a, 2->b, 0->[ ] -_map3.map-entry-separator=-></code></pre> -</div> -</div> -<div class="paragraph"> -<p>Of course these settings also can be combined:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-properties" data-lang="properties"># a reformatted map -redefined-map=0==none | 1==single | 2==any -_redefined-map.map-entry-separator=== -_redefined-map.item-separator=|</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-2016 Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.0</span></a> - at <span>2017-01-10</span> - </p> - <p> - <b>Disclaimer</b> - Apache Tamaya (incubating) is an effort undergoing - incubation at - The Apache Software Foundation (ASF), sponsored by - the name of Apache Incubator. Incubation is required of - all newly accepted projects until a further review indicates - that the infrastructure, communications, and decision making - process have stabilized in a manner consistent with other - successful ASF projects. While incubation status is not - necessarily a reflection of the completeness or stability of - the code, it does indicate that the project has yet to - be fully endorsed by the ASF.<br /> - <a href="http://incubator.apache.org/guides/website.html" style="border:0px;" target="_target"><img class="incubator-logo" src="../../logos/egg-logo2.png"/></a> - </p> - </div> - </div> - - <!-- Le javascript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script src="../../js/jquery-1.11.1.min.js"></script> - <script src="../../js/bootstrap.min.js"></script> - <script src="../../js/prettify.js"></script> - - </div> - </body> -</html>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8158d464/documentation/extensions/mod_consul.html ---------------------------------------------------------------------- diff --git a/documentation/extensions/mod_consul.html b/documentation/extensions/mod_consul.html deleted file mode 100644 index c1bb329..0000000 --- a/documentation/extensions/mod_consul.html +++ /dev/null @@ -1,249 +0,0 @@ -<!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&#8201;&#8212;&#8201;Extension: Integration with consul (Hashicorp)</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/index.html">Javadoc null (external)</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="../../development/source.html">Sources</a></li> - <li><a href="../../development/community.html">Community</a></li> - <li><a href="../../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&#8201;&#8212;&#8201;Extension: Integration with consul (Hashicorp)</h1> - </div> - - <p><em>2017-01-09</em></p> - - <p><div id="preamble"> -<div class="sectionbody"> -<!-- toc disabled --> -</div> -</div> -<div class="sect1"> -<h2 id="Optional">Integration with consul (Extension Module)</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_overview">Overview</h3> -<div class="paragraph"> -<p>The Tamaya consul integration module provides different artifacts which allows integration of Apachae Tamaya -configuration with consul. Basically the module supports read-only integration (as a ConsulPropertySource as well -as a support for MutableConfiguration as defined by the tamaya-mutable-config extension module.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_compatibility">Compatibility</h3> -<div class="paragraph"> -<p>The module is based on Java 7, so it will not run on Java 7 and beyond.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_installation">Installation</h3> -<div class="paragraph"> -<p>To benefit from configuration builder support you only must add the corresponding dependency to your module:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency> - <groupId>org.apache.tamaya.ext</groupId> - <artifactId>tamaya-consul</artifactId> - <version>{tamaya_version}</version> -</dependency></code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_the_extensions_provided">The Extensions Provided</h3> -<div class="paragraph"> -<p>Consul integration comes basically with 2 artifacts:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>The org.apache.tamaya.etcd.ConsulPropertySource is a PropertySource with a default ordinal of 100 and the name -'consul', which is automatically registered.</p> -</li> -<li> -<p>If the tamaya-mutable-config module is loaded it is possible to write property values back into the consul cluster, -by accessing a MutableConfiguration using the URI config:consul.</p> -</li> -</ul> -</div> -</div> -<div class="sect2"> -<h3 id="_the_consulpropertysource">The ConsulPropertySource</h3> -<div class="paragraph"> -<p>The ConsulPropertySource is automatically registered and allows the consul servers to be used to be configured. This -enables to use e.g. in Docker environments the docker environment configuration mechanisms to configure Tamaya running -in microservice containers to connect with the according consul cluster:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>The property source reads the tamaya.consul.urls system and environment property to evaluate possible etcd servers -(comma separated), which can be connected to. On error the API just performs a Round-Robin through the list of -configured servers. Without any configuration http://127.0.0.1:2400 is used. If no connection to any consul -server can be established a warning will be logged, but deployment will not fail.</p> -</li> -<li> -<p>The ConsulPropertySource finally also allows the values read from the consul cluster to be mapped to prefixed -context. This can be activated by setting the -Dtamaya.consul.prefix=<PREFIX> system property. E.g. when the prefix is -set to cluster-config. a consul key of host:known/all is mapped to cluster-config.host:known/all.</p> -</li> -</ul> -</div> -</div> -</div> -</div></p> - - <hr /> - </div> - </div> - <div> - <div id="push"></div> - - <div id="footer"> - <div class="container"> - <p class="muted credit">© 2014-2016 Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.0</span></a> - at <span>2017-01-10</span> - </p> - <p> - <b>Disclaimer</b> - Apache Tamaya (incubating) is an effort undergoing - incubation at - The Apache Software Foundation (ASF), sponsored by - the name of Apache Incubator. Incubation is required of - all newly accepted projects until a further review indicates - that the infrastructure, communications, and decision making - process have stabilized in a manner consistent with other - successful ASF projects. While incubation status is not - necessarily a reflection of the completeness or stability of - the code, it does indicate that the project has yet to - be fully endorsed by the ASF.<br /> - <a href="http://incubator.apache.org/guides/website.html" style="border:0px;" target="_target"><img class="incubator-logo" src="../../logos/egg-logo2.png"/></a> - </p> - </div> - </div> - - <!-- Le javascript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script src="../../js/jquery-1.11.1.min.js"></script> - <script src="../../js/bootstrap.min.js"></script> - <script src="../../js/prettify.js"></script> - - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8158d464/documentation/extensions/mod_environment.html ---------------------------------------------------------------------- diff --git a/documentation/extensions/mod_environment.html b/documentation/extensions/mod_environment.html deleted file mode 100644 index 72675cb..0000000 --- a/documentation/extensions/mod_environment.html +++ /dev/null @@ -1,219 +0,0 @@ -<!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&#8201;&#8212;&#8201;Extension: Classloader Isolation Support</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/index.html">Javadoc null (external)</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="../../development/source.html">Sources</a></li> - <li><a href="../../development/community.html">Community</a></li> - <li><a href="../../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&#8201;&#8212;&#8201;Extension: Classloader Isolation Support</h1> - </div> - - <p><em>2017-01-09</em></p> - - <p><div id="preamble"> -<div class="sectionbody"> -<!-- toc disabled --> -</div> -</div> -<div class="sect1"> -<h2 id="Remote">Tamaya Environment Model (Extension Module)</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_overview">Overview</h3> -<div class="paragraph"> -<p>The Tamaya Environment extension adds a simple PropertySourceProvider that evaluates a List of environment context and -combines them in the given order into an (optional) root context within the system’s configuration.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_compatibility">Compatibility</h3> -<div class="paragraph"> -<p>The module is based on Java 7, so it will not run on Java 7 and beyond.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_installation">Installation</h3> -<div class="paragraph"> -<p>To benefit from Tamaya Environment Model 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-envionment</artifactId> - <version>{tamaya_version}</version> -</dependency></code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_how_it_works">How it Works</h3> -<div class="paragraph"> -<p>tbd</p> -</div> -</div> -<div class="sect2"> -<h3 id="_reusable_base_classes">Reusable Base Classes</h3> -<div class="paragraph"> -<p>tbd</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-2016 Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.0</span></a> - at <span>2017-01-10</span> - </p> - <p> - <b>Disclaimer</b> - Apache Tamaya (incubating) is an effort undergoing - incubation at - The Apache Software Foundation (ASF), sponsored by - the name of Apache Incubator. Incubation is required of - all newly accepted projects until a further review indicates - that the infrastructure, communications, and decision making - process have stabilized in a manner consistent with other - successful ASF projects. While incubation status is not - necessarily a reflection of the completeness or stability of - the code, it does indicate that the project has yet to - be fully endorsed by the ASF.<br /> - <a href="http://incubator.apache.org/guides/website.html" style="border:0px;" target="_target"><img class="incubator-logo" src="../../logos/egg-logo2.png"/></a> - </p> - </div> - </div> - - <!-- Le javascript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script src="../../js/jquery-1.11.1.min.js"></script> - <script src="../../js/bootstrap.min.js"></script> - <script src="../../js/prettify.js"></script> - - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8158d464/documentation/extensions/mod_etcd.html ---------------------------------------------------------------------- diff --git a/documentation/extensions/mod_etcd.html b/documentation/extensions/mod_etcd.html deleted file mode 100644 index cebcd5c..0000000 --- a/documentation/extensions/mod_etcd.html +++ /dev/null @@ -1,385 +0,0 @@ -<!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&#8201;&#8212;&#8201;Extension: Integration with etcd (Core OS)</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/index.html">Javadoc null (external)</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="../../development/source.html">Sources</a></li> - <li><a href="../../development/community.html">Community</a></li> - <li><a href="../../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&#8201;&#8212;&#8201;Extension: Integration with etcd (Core OS)</h1> - </div> - - <p><em>2017-01-09</em></p> - - <p><div id="preamble"> -<div class="sectionbody"> -<!-- toc disabled --> -</div> -</div> -<div class="sect1"> -<h2 id="Optional">Integration with etcd (Extension Module)</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_overview">Overview</h3> -<div class="paragraph"> -<p>The Tamaya etcd integration module provides different artifacts which allows integration of Apachae Tamaya -configuration with etcd. Basically the module supports read-only integration (as a EtcdPropertySource as well -as a support for MutableConfiguration as defined by the tamaya-mutable-config extension module.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_compatibility">Compatibility</h3> -<div class="paragraph"> -<p>The module is based on Java 7, so it will not run on Java 7 and beyond.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_installation">Installation</h3> -<div class="paragraph"> -<p>To benefit from configuration builder support you only must add the corresponding dependency to your module:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-xml" data-lang="xml"><dependency> - <groupId>org.apache.tamaya.ext</groupId> - <artifactId>tamaya-etcd</artifactId> - <version>{tamaya_version}</version> -</dependency></code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_the_extensions_provided">The Extensions Provided</h3> -<div class="paragraph"> -<p>ETcd integration comes basically with 2 artifacts:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>The org.apache.tamaya.etcd.EtcdAccessor can be configured with a an url targeting an etcd server’s REST endpoint root. -(org.apache.tamaya.etcd.EtcdAccessor). The accessor basically provides a simple Java API for communicating -with etcd server. The accessor hereby allows reading of single properties, or whole subtrees. Also the basic non -atomic write methods are implemented.</p> -</li> -<li> -<p>The org.apache.tamaya.etcd.EtcdPropertySource is a PropertySource with a default ordinal of 100 and the name -'etcd', which is automatically registered.</p> -</li> -<li> -<p>If the tamaya-mutable-config module is loaded it is possible to write property values back into the etcd cluster, -by accessing a MutableConfiguration using the URI config:etcd.</p> -</li> -</ul> -</div> -</div> -<div class="sect2"> -<h3 id="_the_etcdaccessor">The EtcdAccessor</h3> -<div class="paragraph"> -<p>The accessor mentioned implements the basic read and write API for communicating with an etcd configuration cluster. -Hereby the accessor also provides etcd specific data such as createdIndex, modifiedIndex, ttl in the Map -returned. Hereby the concept of etcd is used where keys starting with an '_' will be hidden from the overall -properties map, being only directly/explicitly accessible:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public class EtcdAccessor { - - /** - * Creates a new instance with the basic access url. - * @param server server url, e.g. {@code http://127.0.0.1:4001}. - * @throws MalformedURLException - */ - public EtcdAccessor(String server) throws MalformedURLException; - - /** - * Get the etcd server version. - * @return the etcd server version, never null. - */ - public String getVersion(); - - /** - * Ask etcd for s aingle key, value pair. Hereby the response returned from etcd: - * <pre> - * key=value - * _key.source=[etcd]http://127.0.0.1:4001 - * _key.createdIndex=12 - * _key.modifiedIndex=34 // optional - * _key.ttl=300 // optional - * _key.expiration=... // optional - * </pre> - * @param key the requested key - * @return the mapped result, including meta-entries. - */ - public Map<String,String> get(String key); - - /** - * Creates/updates an entry in etcd without any ttl set. - * The response is as follows: - * <pre> - * key=value - * _key.source=[etcd]http://127.0.0.1:4001 - * _key.createdIndex=12 - * _key.modifiedIndex=34 // optional - * _key.prevNode.createdIndex=12 // optional - * _key.prevNode.modifiedIndex=34 // optional - * </pre> - * @param key the property key, not null - * @param value the value to be set - * @return the result map as described above. - */ - public Map<String,String> set(String key, String value); - - /** - * Creates/updates an entry in etcd. The response is as follows: - * <pre> - * key=value - * _key.source=[etcd]http://127.0.0.1:4001 - * _key.createdIndex=12 - * _key.modifiedIndex=34 // optional - * _key.ttl=300 // optional - * _key.expiry=... // optional - * _key.prevNode.createdIndex=12 // optional - * _key.prevNode.modifiedIndex=34 // optional - * _key.prevNode.ttl=300 // optional - * _key.prevNode.expiration=... // optional - * </pre> - * @param key the property key, not null - * @param value the value to be set - * @param ttlSeconds the ttl in seconds (optional) - * @return the result map as described above. - */ - public Map<String,String> set(String key, String value, Integer ttlSeconds); - - - /** - * Deletes a given key. The response is as follows: - * <pre> - * _key.source=[etcd]http://127.0.0.1:4001 - * _key.createdIndex=12 - * _key.modifiedIndex=34 - * _key.ttl=300 // optional - * _key.expiry=... // optional - * _key.prevNode.createdIndex=12 // optional - * _key.prevNode.modifiedIndex=34 // optional - * _key.prevNode.ttl=300 // optional - * _key.prevNode.expiration=... // optional - * _key.prevNode.value=... // optional - * </pre> - * @param key the key to be deleted. - * @return the response mpas as described above. - */ - public Map<String,String> delete(String key); - - - /** - * Access regular Tamaya properties map as follows: - * <pre> - * key1=myvalue - * _key1.source=[etcd]http://127.0.0.1:4001 - * _key1.createdIndex=12 - * _key1.modifiedIndex=34 // optional - * _key1.ttl=300 // optional - * _key1.expiration=... // optional - * - * key2=myvaluexxx - * _key2.source=[etcd]http://127.0.0.1:4001 - * _key2.createdIndex=12 - * - * key3=val3 - * _key3.source=[etcd]http://127.0.0.1:4001 - * _key3.createdIndex=12 - * _key3.modifiedIndex=2 - * </pre> - */ - public Map<String,String> getProperties(String directory, boolean recursive); - -}</code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_the_etcdpropertysource">The EtcdPropertySource</h3> -<div class="paragraph"> -<p>The EtcdPropertySource is automatically registered and allows to configure the etcd servers to be used. This -enables to use e.g. in Docker environments the docker environment configuration mechanisms to configure Tamaya running -in microservice containers to connect with the according etcd cluster:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>The property source reads the tamaya.etcd.server.urls system and environment property to evaluate possible etcd servers -(comma separated), which can be connected to. On error the API just performs a Round-Robin through the list of -configured servers. Without any configuration http://127.0.0.1:4001 is used. If no connection to any etcd -server can be established a warning will be logged, but deployment will not fail.</p> -</li> -<li> -<p>Additinoally also the -accessor allows to configure the socket/connection timeouts by setting tamaya.etcd.timeout in seconds either as -system or environment property.</p> -</li> -<li> -<p>The EtcdPropertySource finally also allows the values read from the etcd cluster to be mapped to prefixed -context. This can be activated by setting the -Dtamaya.etcd.prefix=<PREFIX> system property. E.g. when the prefix is -set to cluster-config. a etcd key of host:known/all is mapped to cluster-config.host:known/all.</p> -</li> -</ul> -</div> -</div> -</div> -</div></p> - - <hr /> - </div> - </div> - <div> - <div id="push"></div> - - <div id="footer"> - <div class="container"> - <p class="muted credit">© 2014-2016 Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.0</span></a> - at <span>2017-01-10</span> - </p> - <p> - <b>Disclaimer</b> - Apache Tamaya (incubating) is an effort undergoing - incubation at - The Apache Software Foundation (ASF), sponsored by - the name of Apache Incubator. Incubation is required of - all newly accepted projects until a further review indicates - that the infrastructure, communications, and decision making - process have stabilized in a manner consistent with other - successful ASF projects. While incubation status is not - necessarily a reflection of the completeness or stability of - the code, it does indicate that the project has yet to - be fully endorsed by the ASF.<br /> - <a href="http://incubator.apache.org/guides/website.html" style="border:0px;" target="_target"><img class="incubator-logo" src="../../logos/egg-logo2.png"/></a> - </p> - </div> - </div> - - <!-- Le javascript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script src="../../js/jquery-1.11.1.min.js"></script> - <script src="../../js/bootstrap.min.js"></script> - <script src="../../js/prettify.js"></script> - - </div> - </body> -</html> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/8158d464/documentation/extensions/mod_events.html ---------------------------------------------------------------------- diff --git a/documentation/extensions/mod_events.html b/documentation/extensions/mod_events.html deleted file mode 100644 index b31bf79..0000000 --- a/documentation/extensions/mod_events.html +++ /dev/null @@ -1,508 +0,0 @@ -<!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&#8201;&#8212;&#8201;Extension: Events</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/index.html">Javadoc null (external)</a></li> - </ul> - </li> - <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a> - <ul class="dropdown-menu"> - <li><a href="../../development/source.html">Sources</a></li> - <li><a href="../../development/community.html">Community</a></li> - <li><a href="../../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&#8201;&#8212;&#8201;Extension: Events</h1> - </div> - - <p><em>2017-01-10</em></p> - - <p><div id="preamble"> -<div class="sectionbody"> -<!-- toc disabled --> -</div> -</div> -<div class="sect1"> -<h2 id="Core">Tamaya Events (Extension Module)</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_overview">Overview</h3> -<div class="paragraph"> -<p>Tamaya Events 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 Events provides an abstraction for events like change events, when configuration has been changed.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_compatibility">Compatibility</h3> -<div class="paragraph"> -<p>The module is based on Java 7, so it can be used with Java 7 and beyond.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_installation">Installation</h3> -<div class="paragraph"> -<p>To benefit from configuration event 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-events</artifactId> - <version>{tamaya_version}</version> -</dependency></code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_core_architecture">Core Architecture</h3> -<div class="paragraph"> -<p>The core of the module are the ConfigEventListener interface and the ConfigEvent class, which defines an abstraction -for event handling and observation:</p> -</div> -<div class="listingblock"> -<div class="title">ConfigEvent</div> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public final interface ConfigEvent<T> { - - Class<T> getResourceType(); - T getResource(); - String getVersion(); - long getTimestamp(); -} - -// @FunctionalInterface -public interface ConfigEventListener { - - void onConfigEvent(ConfigEvent<?> event); - -}</code></pre> -</div> -</div> -<div class="paragraph"> -<p>This mechanism can now be used to propagate configuration changes to all interested stakeholders. Hereby the payload -can be basically arbitrary as long as it implements the ConfigEvent interface. The next sections -give more details on the the provided event types and their usage.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_modelling_configuration_changes">Modelling Configuration Changes</h3> -<div class="paragraph"> -<p>This module provides a serializable and thread-safe abstraction modlling a configuration change. A change hereby may -be</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>additional configuration entries</p> -</li> -<li> -<p>removed configuration entries</p> -</li> -<li> -<p>changes on entries</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>The most important event modelled is the ConfigurationChange class, which implements the event sent for a changed -Configuration:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public final class ConfigurationChange implements ConfigEvent<Configuration>, Serializable{ - - public static ConfigurationChange emptyChangeSet(Configuration configuration); - - @Override - public Configuration getResource(); - @Override - public Class<Configuration> getResourceType(); - @Override - public String getVersion(); - @Override - public long getTimestamp(); - - // Event specific methods - - public Collection<PropertyChangeEvent> getChanges(); - public int getRemovedSize(); - public int getAddedSize(); - public int getUpdatedSize(); - - public boolean isKeyAffected(String key); - public boolean isRemoved(String key); - public boolean isAdded(String key); - public boolean isUpdated(String key); - public boolean containsKey(String key); - public boolean isEmpty(); -}</code></pre> -</div> -</div> -<div class="paragraph"> -<p>New instances of this class hereby can be created using a fluent builder:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">Configuration config = ...; -ConfigurationChange change = ConfigurationChangeBuilder.of(config) - .addChange("MyKey", "newValue") - .removeKeys("myRemovedKey").build();</code></pre> -</div> -</div> -<div class="paragraph"> -<p>Also it is possible to directly compare 2 instances of configurations to create ConfigurationChange that -reflect the differences between the two configurations:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">Comparing 2 configurations -------------------------------------------------------- -Configuration config = ...; -Configuration changedConfig = ...; -ConfigurationChange change = ConfigurationChangeBuilder.of(config) - .addChanges(changedConfig).build(); --------------------------------------------------------</code></pre> -</div> -</div> -<div class="paragraph"> -<p>So a ConfigurationChange allows you to evaluate the changes on a configuration. This allows you to listen to changes -and react in your client code as useful, once you encounter changes that are relevant to you, e.g. by reconfiguring -your component. For listening to configuration changes you must implement the -ConfigEventListener functional interface:</p> -</div> -<div class="listingblock"> -<div class="title">Implementing a ConfigChangeListener</div> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public final class MyConfigChangeListener implements ConfigChangeListener<ConfigurationChange>{ - - private Configuration config = ConfigurationProvider.getConfiguration(); - - public void onConfigEvent(ConfigEvent<?> event){ - if(event.getResourceTspe()==Configuration.class){ - if(event.getConfiguration()==config){ - // do something - } - } - } - -}</code></pre> -</div> -</div> -<div class="paragraph"> -<p>You can <strong>register</strong> your implementation in 2 ways:</p> -</div> -<div class="olist arabic"> -<ol class="arabic"> -<li> -<p>Manually by calling ConfigEventManager.addListener(new MyConfigChangeListener())</p> -</li> -<li> -<p>Automatically by registering your listener using the ServiceLoader under -META-INF/services/org.apache.tamaya.events.ConfigEventListener</p> -</li> -</ol> -</div> -</div> -<div class="sect2"> -<h3 id="_modelling_propertysource_changes">Modelling PropertySource Changes</h3> -<div class="paragraph"> -<p>Beside that a whole configuration changes, also PropertySource instances can change, e.g. by a configuration file -edited on the fly. This is similarly to a ConfigurationChange reflected by the classes PropertySourceChange, -PropertySourceChangeBuilder.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_the_configeventmanager_singleton">The ConfigEventManager Singleton</h3> -<div class="paragraph"> -<p>Main entry point of the events module is the ConfigEventManager singleton class, which provides static accessor -methods to the extension’s functionality:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>Adding/removing of ConfigChangeListener instances, either globally or per event type.</p> -</li> -<li> -<p>Firing configuration events synchronously or asyncronously (mostly called by framework code).</p> -</li> -<li> -<p>Configuring the monitor that periodically checks for changes on the global Configuration provided -by ConfigurationProvider.getConfiguration().</p> -</li> -</ul> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public final class ConfigEventManager { - - private ConfigEventManager() {} - - public static void addListener(ConfigEventListener l); - public static <T extends ConfigEvent> void addListener(ConfigEventListener l, Class<T> eventType); - public static void removeListener(ConfigEventListener l); - public static <T extends ConfigEvent> void removeListener(ConfigEventListener l, Class<T> eventType); - public static <T extends ConfigEvent> - Collection<? extends ConfigEventListener> getListeners(); - public static <T extends ConfigEvent> - Collection<? extends ConfigEventListener> getListeners(Class<T> type); - - public static <T> void fireEvent(ConfigEvent<?> event); - public static <T> void fireEventAsynch(ConfigEvent<?> event); - - public static void enableChangeMonitoring(boolean enable); - public static boolean isChangeMonitoring(); - public long getChangeMonitoringPeriod(); - public void setChangeMonitoringPeriod(long millis); - -}</code></pre> -</div> -</div> -<div class="sect3"> -<h4 id="_monitoring_of_configuration_changes">Monitoring of configuration changes</h4> -<div class="paragraph"> -<p>The ConfigEventManager also supports active monitoring of the current configuration to trigger corresponding change -events to listeners registered. This feature is deactivated by default, but can be enabled by calling -ConfigEventManager.enableChangeMonitoring(true);. This feature avoids regularly polling your local Configuration for -any kind of changes. If a change has been encountered Tamaya identifies it and triggers corresponding -ConfigurationChange events automatically.</p> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_freezing_configurations_and_propertysources">Freezing Configurations and PropertySources</h3> -<div class="paragraph"> -<p>Configuration instances as well as PropertySources are explicitly not required to be serializable. To enable easy -serialization of these types a Configuration's <strong>current state can be frozen</strong> (e.g. for later comparison with a newly -loaded version). Freezing hereby means</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>all key/values are read-out by calling the getProperties() method.</p> -</li> -<li> -<p>a meta data entry is added of the form _frozenAt=223273777652325677, whichdefines the UTC timestamp in -milliseconds when this instance was frozen.</p> -</li> -<li> -<p>if not already defined an _id property will be added to the Configuration containing the -identifier of the configuration.</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>In code freezing is a no-brainer:</p> -</div> -<div class="listingblock"> -<div class="title">Freezing the current Configuration</div> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">Configuration config = ConfigurationProvider.getConfiguration(); -Configuration frozenConfig = FrozenConfiguration.of(config);</code></pre> -</div> -</div> -<div class="olist lowerroman"> -<ol class="lowerroman" type="i"> -<li> -<p>and similarly for a PropertySource:</p> -</li> -</ol> -</div> -<div class="listingblock"> -<div class="title">Freezing the current Configuration</div> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">PropertySource propertySource = ...; -PropertySource frozenSource = FrozenPropertySource.of(propertySource);</code></pre> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="_spis">SPIs</h3> -<div class="paragraph"> -<p>This component also defines an additional SPI, which allows to adapt the implementation of the main ConfigEventManager -singleton. This enables, for example, using external eventing systems, such as CDI, instead of the default provided -simple SE based implementation. As normal, implementation must be registered using the current ServiceContext -active, by default using the Java ServiceLoader mechanism.</p> -</div> -<div class="listingblock"> -<div class="title">SPI: ConfigEventSpi</div> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public interface ConfigEventManagerSpi { - - <T> void addListener(ConfigEventListener l); - <T extends ConfigEvent> void addListener(ConfigEventListener l, Class<T> eventType); - void removeListener(ConfigEventListener l); - <T extends ConfigEvent> void removeListener(ConfigEventListener l, Class<T> eventType); - Collection<? extends ConfigEventListener> getListeners(); - Collection<? extends ConfigEventListener> getListeners(Class<? extends ConfigEvent> eventType); - - void fireEvent(ConfigEvent<?> event); - void fireEventAsynch(ConfigEvent<?> event); - - long getChangeMonitoringPeriod(); - void setChangeMonitoringPeriod(long millis); - boolean isChangeMonitorActive(); - void enableChangeMonitor(boolean enable); -}</code></pre> -</div> -</div> -<div class="paragraph"> -<p>Summarizing with the events module you can easily observe configuration changes, record the -state of any configuration and compare configuration states to create and publish related -change events.</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-2016 Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.0</span></a> - at <span>2017-01-10</span> - </p> - <p> - <b>Disclaimer</b> - Apache Tamaya (incubating) is an effort undergoing - incubation at - The Apache Software Foundation (ASF), sponsored by - the name of Apache Incubator. Incubation is required of - all newly accepted projects until a further review indicates - that the infrastructure, communications, and decision making - process have stabilized in a manner consistent with other - successful ASF projects. While incubation status is not - necessarily a reflection of the completeness or stability of - the code, it does indicate that the project has yet to - be fully endorsed by the ASF.<br /> - <a href="http://incubator.apache.org/guides/website.html" style="border:0px;" target="_target"><img class="incubator-logo" src="../../logos/egg-logo2.png"/></a> - </p> - </div> - </div> - - <!-- Le javascript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script src="../../js/jquery-1.11.1.min.js"></script> - <script src="../../js/bootstrap.min.js"></script> - <script src="../../js/prettify.js"></script> - - </div> - </body> -</html>
