http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cddd52a8/documentation/core.html ---------------------------------------------------------------------- diff --git a/documentation/core.html b/documentation/core.html index 9bf1b4d..a604ea5 100644 --- a/documentation/core.html +++ b/documentation/core.html @@ -125,438 +125,349 @@ <h1></h1> </div> - <p><em>2018-04-26</em></p> + <p><em>2018-05-17</em></p> - <p><div class="sect1"> -<h2 id="Core">Tamaya Core Implementation</h2> -<div class="sectionbody"> -<div class="sect2"> -<h3 id="_overview">Overview</h3> -<div class="paragraph"> -<p>Tamaya Core provides an implementation of the <a href="api.html">Tamaya Configuration API</a> and adds additional functionality -and building blocks for supporting SPI implementations.</p> -</div> -<div class="paragraph"> -<p>Tamaya Core contains the following artifacts:</p> -</div> -<div class="ulist"> -<ul> -<li> -<p><strong>tamaya-spisupport</strong> provides implementations and base classes for different API artifacts such as Configuration, -ConfigurationContext, ConfigurationContextBuilder, ConfigurationProviderSpi, BasePropertySource and more. It is -built as an independent core module, which also can be used with other implementations. The <strong>tamaya-core</strong> -implementation leverages these base classes to build up a full API implementation.</p> -</li> -<li> -<p>A java.util.ServiceLoader based ServiceContext implementation. This allows component priorization based -on the @Priority annotations.</p> -</li> -<li> -<p>A PropertyConverterManager that loads and stores references to all the preconfigured PropertyConverter instances, -thus providing type conversion for all important types.</p> -</li> -<li> -<p>A simple default configuration setup using the current classpath and an optional staging variable.</p> -</li> -<li> -<p>It collects all PropertySource and PropertySourceProvider instances registered with the ServiceLoader and -registers them in the global ConfigurationContext</p> -</li> -<li> -<p>It provides a ConfigurationContextBuilder implementation (DefaultConfigurationContextBuilder) and allows to -change the current ConfigurationContext.</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>The overall size of the library is very small. All required components are implemented and registered, so basically the -Core module is a complete configuration solution. Nevertheless it is also very minimalistic, but fortunately is flexible -enough to be extended/accommodated with additional features as needed, such as</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>placeholder and resolution mechanisms (org.apache.tamaya.ext:tamaya-resolver)</p> -</li> -<li> -<p>dynamic resource path lookup, e.g. with ant styled patterns (org.apache.tamaya.ext:tamaya-resources)</p> -</li> -<li> -<p>configuration injection and configuration templates (org.apache.tamaya.ext:tamaya-injcetion-api)</p> -</li> -<li> -<p>abstraction for reusable formats (org.apache.tamaya.ext:tamaya-formats)</p> -</li> -<li> -<p>integration with other existing solutions (e.g. org.apache.tamaya.ext:tamaya-spring)</p> -</li> -<li> -<p>configuration and configuration isolation targeting Java EE (org.apache.tamaya.ext:tamaya-injection-ee)</p> -</li> -<li> -<p>dynamic configuration and configuration updates (org.apache.tamaya.ext:tamaya-events)</p> -</li> -<li> -<p>remote configuration (org.apache.tamaya.ext:tamaya-etcd, org.apache.tamaya.ext:tamaya-consul, -org.apache.tamaya.ext:tamaya-hazelcast)</p> -</li> -<li> -<p>and more</p> -</li> -</ul> -</div> -<div class="paragraph"> -<p>For details about the extension modules available and their functionality refer to the <a href="extensions.html">extension user guide</a>.</p> -</div> -</div> -<div class="sect2"> -<h3 id="CorePropertyConverters">Default PropertyConverters</h3> -<div class="paragraph"> -<p>The <em>SPI</em> base module provides several PropertyConverter implementations, which are automatically registered by the -<em>Core</em> module. Find below the listing of converters automatically registered with the Core module:</p> -</div> -<table class="tableblock frame-1 grid-all spread"> -<colgroup> -<col style="width: 33.3333%;"> -<col style="width: 33.3333%;"> -<col style="width: 33.3334%;"> -</colgroup> -<thead> -<tr> -<th class="tableblock halign-left valign-top"><em>Target Type</em></th> -<th class="tableblock halign-left valign-top"><em>Class Name</em></th> -<th class="tableblock halign-left valign-top"><em>Supported Formats</em></th> -</tr> -</thead> -<tbody> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.math.BigDecimal</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">BigDecimalConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1.2345, 0xFF</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.math.BigInteger</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">BigIntegerConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">0xFF, 1234</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Boolean</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">BooleanConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">true, false, T, F, 1 ,0</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Byte</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">ByteConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">0xFF, MIN_VALUE, MAX_VALUE, 123</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Character</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">CharConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">0xFF, 'a', 'H', 123</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Class</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">ClassConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><fully qualified class name></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.util.Currency</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">CurrencyConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">CHF, 123</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Double</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">DoubleConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xFF, 1.2334, NaN, NEGATIVE_INFITIY, POSITIVE_INFINITY, MIN_VALUE, MAX_VALUE</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Enums</em></p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">EnumConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><Enum item name></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Float</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">FloatConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xFF, 1.2334, NaN, NEGATIVE_INFITIY, POSITIVE_INFINITY, MIN_VALUE, MAX_VALUE</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Integer</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">IntegerConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xD3, MIN_VALUE, MAX_VALUE</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">LocalDate</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">LocalDateConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><Date as defined by LocalDate.parse(String)</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">LocalTime</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">LocalTimeConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><Time as defined by LocalTime.parse(String)</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">LocalDateTime</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">LocalDateTimeConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><LocalDateTime as defined by LocalDateTime.parse(String)></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Long</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">LongConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xD3, MIN_VALUE, MAX_VALUE</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Number</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">NumberConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xFF, 1.2334, NaN, NEGATIVE_INFITIY, POSITIVE_INFINITY</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Short</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">ShortConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xD3, MIN_VALUE, MAX_VALUE</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.net.URI</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">URIConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://localhost:2020/testresource?api=true" class="bare">http://localhost:2020/testresource?api=true</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">java.net.URL</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">URLConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://localhost:2020/testresource?api=true" class="bare">http://localhost:2020/testresource?api=true</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">ZoneId</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">ZoneIdConverter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Europe/Zurich</p></td> -</tr> -</tbody> -</table> -</div> -<div class="sect2"> -<h3 id="_registering_propertyconverters">Registering PropertyConverters</h3> -<div class="paragraph"> -<p>Additional PropertyConverters can be implemented easily. It is recommended to register them using -the java.util.ServiceLoader, meaning you add a file under META-INF/service/org.apache.tamaya.spi.PropertyConverter -containing the fully qualified class names of the converters to be registered (one line each) to enable -auto-discovery.</p> -</div> -<div class="paragraph"> -<p>Alternatively you can also use a ConfigurationContextBuilder to add additional converters -programmatically.</p> -</div> -</div> -<div class="sect2"> -<h3 id="ComponentLoadingAndPriorization">Component Loading and Priorization</h3> -<div class="paragraph"> -<p>Tamaya <em>Core</em> in general loads all components by default using the java.util.ServiceLoader mechanism. This means that -new components must be registered by adding a file under META-INF/service/<myInterfaceName> containing the fully -qualified implementation class names of the components to be registered (one line per each). -The ServiceLoader itself does not provide any functionality for overriding or ordering of -components. Tamaya <em>Core</em> adds such a functionality with the possibility to add @Priority -annotations to the components registered. By default, and if no annotation is added 0 is assumed -as priority. Hereby higher values preceed lower values, meaning</p> -</div> -<div class="ulist"> -<ul> -<li> -<p>if a <em>singleton</em> component is accessed from the current ServiceContext the component with the -higher value effectively <em>overrides/replaces</em> any component with lower values.</p> -</li> -<li> -<p>if a <em>collection</em> of components is obtained from the ServiceContext the components are <em>ordered</em> -based on their priorities, where the ones with higher priority are before components with lower -priority.</p> -</li> -<li> -<p>if priorities <em>match</em> Tamaya <em>Core</em> additionally sorts them using the <em>simple class name</em>. -This ensures that ordering is still defined and predictable in all scenarios.</p> -</li> -</ul> -</div> -<div class="admonitionblock note"> -<table> -<tr> -<td class="icon"> -<div class="title">Note</div> -</td> -<td class="content"> -Sorting the property sources based on their ordinal value is only the default ordering - principle applied. By implementing your own implementation of ConfigurationProviderSpi - you can apply a different logic: -</td> -</tr> -</table> -</div> -</div> -<div class="sect2"> -<h3 id="RegisteringPropertySources">Registering Property Sources</h3> -<div class="paragraph"> -<p>PropertySource implementations that provide configuration properties are registered as components as described in the -previous section. Hereby the precedence (ordering) of property sources is not hard-coded. Instead a Comparator<PropertySource> -can be passed to a ConfigurationContextBuilder to perform automatic ordering of the property sources -registered. The default implementation hereby implements the following logic:</p> -</div> -<div class="olist arabic"> -<ol class="arabic"> -<li> -<p>It checks for an property entry tamaya.ordinal if present the value is parsed into an int value and used as -the ordinal val value.</p> -</li> -<li> -<p>It checks for an explicit method int getOrdinal(), if found its value is taken as an ordinal.</p> -</li> -<li> -<p>It checks for a @Priority annotation, if present the priority value is used as an ordinal.</p> -</li> -<li> -<p>If none of the above works, 0 is assumed as ordinal value.</p> -</li> -<li> -<p>If multiple PropertySource instances share the same ordinal value, they are ordered based on their fully qualified -class names.</p> -</li> -</ol> -</div> -<div class="paragraph"> -<p>Custom implementations of the property source comparator can be applied by calling -ConfigurationContextBuilder.sortPropertySources(Comparator<PropertySource>). The default comparator can be replaced -by passing the fully qualified comparator class name as system property:</p> -</div> -<div class="paragraph"> -<p>-Dproperty-source-comparator=a.b.c.MyComparatorClass</p> -</div> -<div class="paragraph"> -<p>The ladder allows to adapt the ordering of auto-discovered property sources, even if the value returned by -int getOrdinal() cannot be changed.</p> -</div> -</div> -</div> -</div> -<div class="sect1"> -<h2 id="CorePropertySources">Configuration Setup in Core</h2> -<div class="sectionbody"> -<div class="paragraph"> -<p>Tamaya Core provides a minimal configuration setting, that allows you to configure SE -applications already easily. Basically configuration is built up by default as follows:</p> -</div> -<div class="olist arabic"> -<ol class="arabic"> -<li> -<p>Read environment properties and add them prefixed with env.</p> -</li> -<li> -<p>Read all files found at META-INF/javaconfiguration.properties -and META-INF/javaconfiguration.xml</p> -</li> -</ol> -</div> -<div class="sect2"> -<h3 id="_overview_of_registered_default_property_sources_and_providers">Overview of Registered Default Property Sources and Providers</h3> -<div class="paragraph"> -<p>The Tamaya Core implementation provides a couple of default PropertySource implementations, which are automatically -registered. They are all in the package org.apache.tamaya.spisupport.propertysource and -org.apache.tamaya.core.provider:</p> -</div> -<table class="tableblock frame-1 grid-all spread"> -<colgroup> -<col style="width: 33.3333%;"> -<col style="width: 33.3333%;"> -<col style="width: 33.3334%;"> -</colgroup> -<thead> -<tr> -<th class="tableblock halign-left valign-top"><em>Type</em></th> -<th class="tableblock halign-left valign-top"><em>Class Name</em></th> -<th class="tableblock halign-left valign-top"><em>Ordinal Used</em></th> -</tr> -</thead> -<tbody> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">META-INF/javaconfiguration.properties</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">JavaConfigurationProvider</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">100</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">META-INF/javaconfiguration.xml</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">JavaConfigurationProvider</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">100</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">JNDI Entries</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">JNDIPropertySource</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">Environment Properties</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">EnvironmentPropertySource</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">300</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">System Properties</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">SystemPropertySource</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">1000</p></td> -</tr> -</tbody> -</table> -<div class="admonitionblock note"> -<table> -<tr> -<td class="icon"> -<div class="title">Note</div> -</td> -<td class="content"> -Similarly to property converters the property sources shown here are defined within the "tamaya-spisupport* module - and automatically registered with the <strong>tamaya-core</strong> implementation using Tamaya’s auto-discovery mechanisms. -</td> -</tr> -</table> -</div> -<div class="admonitionblock note"> -<table> -<tr> -<td class="icon"> -<div class="title">Note</div> -</td> -<td class="content"> -JNDIPropertySource is provided by the <code>tamaya-jndi</code> extension module. -</td> -</tr> -</table> -</div> -</div> -<div class="sect2"> -<h3 id="_abstract_class_propertiesfilepropertysource">Abstract Class PropertiesFilePropertySource</h3> -<div class="paragraph"> -<p>The abstract class PropertiesFilePropertySource can be used for implementing a PropertySource based on a URL -instance that points to a .properites file. It requires a URL to be passed on the constructor:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">PropertiesFilePropertySource(URL url);</code></pre> -</div> -</div> -<div class="sect3"> -<h4 id="_abstract_class_propertiespropertysource">Abstract Class PropertiesPropertySource</h4> -<div class="paragraph"> -<p>The abstract class PropertiesPropertySource can be used for implementing a PropertySource based on a Properties -instance. It requires a PropertySource to be passed on the constructor:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">PropertiesPropertySource(Properties properties);</code></pre> -</div> -</div> -</div> -<div class="sect3"> -<h4 id="_abstract_class_basepropertysource">Abstract Class BasePropertySource</h4> -<div class="paragraph"> -<p>The abstract class BasePropertySource can be used for implementing custom PropertySource classes. It requires only -one method to implemented:</p> -</div> -<div class="listingblock"> -<div class="title">Implementing a PropertySource using BasePropertySource</div> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">public class MyPropertySource extends BasePropertySource{ + <p><div class="sect1"> + <h2 id="Core">Tamaya Core Implementation</h2> + <div class="sectionbody"> + <div class="sect2"> + <h3 id="_overview">Overview</h3> + <div class="paragraph"> + <p>Tamaya Core provides an implementation of the <a href="api.html">Tamaya Configuration API</a> and adds additional functionality and building blocks for supporting SPI implementations.</p> + </div> + <div class="paragraph"> + <p>Tamaya Core contains the following artifacts:</p> + </div> + <div class="ulist"> + <ul> + <li> <p><strong>tamaya-spisupport</strong> provides implementations and base classes for different API artifacts such as Configuration, ConfigurationContext, ConfigurationContextBuilder, ConfigurationProviderSpi, BasePropertySource and more. It is built as an independent core module, which also can be used with other implementations. The <strong>tamaya-core</strong> implementation leverages these base classes to build up a full API implementation.</p> </li> + <li> <p>A java.util.ServiceLoader based ServiceContext implementation. This allows component priorization based on the @Priority annotations.</p> </li> + <li> <p>A PropertyConverterManager that loads and stores references to all the preconfigured PropertyConverter instances, thus providing type conversion for all important types.</p> </li> + <li> <p>A simple default configuration setup using the current classpath and an optional staging variable.</p> </li> + <li> <p>It collects all PropertySource and PropertySourceProvider instances registered with the ServiceLoader and registers them in the global ConfigurationContext</p> </li> + <li> <p>It provides a ConfigurationContextBuilder implementation (DefaultConfigurationContextBuilder) and allows to change the current ConfigurationContext.</p> </li> + </ul> + </div> + <div class="paragraph"> + <p>The overall size of the library is very small. All required components are implemented and registered, so basically the Core module is a complete configuration solution. Nevertheless it is also very minimalistic, but fortunately is flexible enough to be extended/accommodated with additional features as needed, such as</p> + </div> + <div class="ulist"> + <ul> + <li> <p>placeholder and resolution mechanisms (org.apache.tamaya.ext:tamaya-resolver)</p> </li> + <li> <p>dynamic resource path lookup, e.g. with ant styled patterns (org.apache.tamaya.ext:tamaya-resources)</p> </li> + <li> <p>configuration injection and configuration templates (org.apache.tamaya.ext:tamaya-injcetion-api)</p> </li> + <li> <p>abstraction for reusable formats (org.apache.tamaya.ext:tamaya-formats)</p> </li> + <li> <p>integration with other existing solutions (e.g. org.apache.tamaya.ext:tamaya-spring)</p> </li> + <li> <p>configuration and configuration isolation targeting Java EE (org.apache.tamaya.ext:tamaya-injection-ee)</p> </li> + <li> <p>dynamic configuration and configuration updates (org.apache.tamaya.ext:tamaya-events)</p> </li> + <li> <p>remote configuration (org.apache.tamaya.ext:tamaya-etcd, org.apache.tamaya.ext:tamaya-consul, org.apache.tamaya.ext:tamaya-hazelcast)</p> </li> + <li> <p>and more</p> </li> + </ul> + </div> + <div class="paragraph"> + <p>For details about the extension modules available and their functionality refer to the <a href="extensions.html">extension user guide</a>.</p> + </div> + </div> + <div class="sect2"> + <h3 id="CorePropertyConverters">Default PropertyConverters</h3> + <div class="paragraph"> + <p>The <em>SPI</em> base module provides several PropertyConverter implementations, which are automatically registered by the <em>Core</em> module. Find below the listing of converters automatically registered with the Core module:</p> + </div> + <table class="tableblock frame-1 grid-all spread"> + <colgroup> + <col style="width: 33.3333%;"> + <col style="width: 33.3333%;"> + <col style="width: 33.3334%;"> + </colgroup> + <thead> + <tr> + <th class="tableblock halign-left valign-top"><em>Target Type</em></th> + <th class="tableblock halign-left valign-top"><em>Class Name</em></th> + <th class="tableblock halign-left valign-top"><em>Supported Formats</em></th> + </tr> + </thead> + <tbody> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.math.BigDecimal</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">BigDecimalConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1.2345, 0xFF</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.math.BigInteger</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">BigIntegerConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">0xFF, 1234</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Boolean</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">BooleanConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">true, false, T, F, 1 ,0</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Byte</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">ByteConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">0xFF, MIN_VALUE, MAX_VALUE, 123</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Character</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">CharConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">0xFF, 'a', 'H', 123</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Class</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">ClassConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><fully qualified class name></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.util.Currency</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">CurrencyConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">CHF, 123</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Double</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">DoubleConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xFF, 1.2334, NaN, NEGATIVE_INFITIY, POSITIVE_INFINITY, MIN_VALUE, MAX_VALUE</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock"><em>Enums</em></p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">EnumConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><Enum item name></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Float</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">FloatConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xFF, 1.2334, NaN, NEGATIVE_INFITIY, POSITIVE_INFINITY, MIN_VALUE, MAX_VALUE</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Integer</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">IntegerConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xD3, MIN_VALUE, MAX_VALUE</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">LocalDate</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">LocalDateConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><Date as defined by LocalDate.parse(String)</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">LocalTime</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">LocalTimeConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><Time as defined by LocalTime.parse(String)</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">LocalDateTime</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">LocalDateTimeConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><LocalDateTime as defined by LocalDateTime.parse(String)></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Long</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">LongConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xD3, MIN_VALUE, MAX_VALUE</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Number</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">NumberConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xFF, 1.2334, NaN, NEGATIVE_INFITIY, POSITIVE_INFINITY</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.ui.lang.Short</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">ShortConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1, 0xD3, MIN_VALUE, MAX_VALUE</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.net.URI</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">URIConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://localhost:2020/testresource?api=true" class="bare">http://localhost:2020/testresource?api=true</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">java.net.URL</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">URLConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://localhost:2020/testresource?api=true" class="bare">http://localhost:2020/testresource?api=true</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">ZoneId</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">ZoneIdConverter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Europe/Zurich</p></td> + </tr> + </tbody> + </table> + </div> + <div class="sect2"> + <h3 id="_registering_propertyconverters">Registering PropertyConverters</h3> + <div class="paragraph"> + <p>Additional PropertyConverters can be implemented easily. It is recommended to register them using the java.util.ServiceLoader, meaning you add a file under META-INF/service/org.apache.tamaya.spi.PropertyConverter containing the fully qualified class names of the converters to be registered (one line each) to enable auto-discovery.</p> + </div> + <div class="paragraph"> + <p>Alternatively you can also use a ConfigurationContextBuilder to add additional converters programmatically.</p> + </div> + </div> + <div class="sect2"> + <h3 id="ComponentLoadingAndPriorization">Component Loading and Priorization</h3> + <div class="paragraph"> + <p>Tamaya <em>Core</em> in general loads all components by default using the java.util.ServiceLoader mechanism. This means that new components must be registered by adding a file under META-INF/service/<myInterfaceName> containing the fully qualified implementation class names of the components to be registered (one line per each). The ServiceLoader itself does not provide any functionality for overriding or ordering of components. Tamaya <em>Core</em> adds such a functionality with the possibility to add @Priority annotations to the components registered. By default, and if no annotation is added 0 is assumed as priority. Hereby higher values preceed lower values, meaning</p> + </div> + <div class="ulist"> + <ul> + <li> <p>if a <em>singleton</em> component is accessed from the current ServiceContext the component with the higher value effectively <em>overrides/replaces</em> any component with lower values.</p> </li> + <li> <p>if a <em>collection</em> of components is obtained from the ServiceContext the components are <em>ordered</em> based on their priorities, where the ones with higher priority are before components with lower priority.</p> </li> + <li> <p>if priorities <em>match</em> Tamaya <em>Core</em> additionally sorts them using the <em>simple class name</em>. This ensures that ordering is still defined and predictable in all scenarios.</p> </li> + </ul> + </div> + <div class="admonitionblock note"> + <table> + <tbody> + <tr> + <td class="icon"> + <div class="title"> + Note + </div> </td> + <td class="content"> Sorting the property sources based on their ordinal value is only the default ordering principle applied. By implementing your own implementation of ConfigurationProviderSpi you can apply a different logic: </td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="sect2"> + <h3 id="RegisteringPropertySources">Registering Property Sources</h3> + <div class="paragraph"> + <p>PropertySource implementations that provide configuration properties are registered as components as described in the previous section. Hereby the precedence (ordering) of property sources is not hard-coded. Instead a Comparator<PropertySource> can be passed to a ConfigurationContextBuilder to perform automatic ordering of the property sources registered. The default implementation hereby implements the following logic:</p> + </div> + <div class="olist arabic"> + <ol class="arabic"> + <li> <p>It checks for an property entry tamaya.ordinal if present the value is parsed into an int value and used as the ordinal val value.</p> </li> + <li> <p>It checks for an explicit method int getOrdinal(), if found its value is taken as an ordinal.</p> </li> + <li> <p>It checks for a @Priority annotation, if present the priority value is used as an ordinal.</p> </li> + <li> <p>If none of the above works, 0 is assumed as ordinal value.</p> </li> + <li> <p>If multiple PropertySource instances share the same ordinal value, they are ordered based on their fully qualified class names.</p> </li> + </ol> + </div> + <div class="paragraph"> + <p>Custom implementations of the property source comparator can be applied by calling ConfigurationContextBuilder.sortPropertySources(Comparator<PropertySource>). The default comparator can be replaced by passing the fully qualified comparator class name as system property:</p> + </div> + <div class="paragraph"> + <p>-Dproperty-source-comparator=a.b.c.MyComparatorClass</p> + </div> + <div class="paragraph"> + <p>The ladder allows to adapt the ordering of auto-discovered property sources, even if the value returned by int getOrdinal() cannot be changed.</p> + </div> + </div> + </div> +</div> +<div class="sect1"> + <h2 id="CorePropertySources">Configuration Setup in Core</h2> + <div class="sectionbody"> + <div class="paragraph"> + <p>Tamaya Core provides a minimal configuration setting, that allows you to configure SE applications already easily. Basically configuration is built up by default as follows:</p> + </div> + <div class="olist arabic"> + <ol class="arabic"> + <li> <p>Read environment properties and add them prefixed with env.</p> </li> + <li> <p>Read all files found at META-INF/javaconfiguration.properties and META-INF/javaconfiguration.xml</p> </li> + </ol> + </div> + <div class="sect2"> + <h3 id="_overview_of_registered_default_property_sources_and_providers">Overview of Registered Default Property Sources and Providers</h3> + <div class="paragraph"> + <p>The Tamaya Core implementation provides a couple of default PropertySource implementations, which are automatically registered. They are all in the package org.apache.tamaya.spisupport.propertysource and org.apache.tamaya.core.provider:</p> + </div> + <table class="tableblock frame-1 grid-all spread"> + <colgroup> + <col style="width: 33.3333%;"> + <col style="width: 33.3333%;"> + <col style="width: 33.3334%;"> + </colgroup> + <thead> + <tr> + <th class="tableblock halign-left valign-top"><em>Type</em></th> + <th class="tableblock halign-left valign-top"><em>Class Name</em></th> + <th class="tableblock halign-left valign-top"><em>Ordinal Used</em></th> + </tr> + </thead> + <tbody> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">META-INF/javaconfiguration.properties</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">JavaConfigurationProvider</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">100</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">META-INF/javaconfiguration.xml</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">JavaConfigurationProvider</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">100</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">JNDI Entries</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">JNDIPropertySource</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">200</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">Environment Properties</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">EnvironmentPropertySource</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">300</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">System Properties</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">SystemPropertySource</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">1000</p></td> + </tr> + </tbody> + </table> + <div class="admonitionblock note"> + <table> + <tbody> + <tr> + <td class="icon"> + <div class="title"> + Note + </div> </td> + <td class="content"> Similarly to property converters the property sources shown here are defined within the "tamaya-spisupport* module and automatically registered with the <strong>tamaya-core</strong> implementation using Tamayaâs auto-discovery mechanisms. </td> + </tr> + </tbody> + </table> + </div> + <div class="admonitionblock note"> + <table> + <tbody> + <tr> + <td class="icon"> + <div class="title"> + Note + </div> </td> + <td class="content"> JNDIPropertySource is provided by the <code>tamaya-jndi</code> extension module. </td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="sect2"> + <h3 id="_abstract_class_propertiesfilepropertysource">Abstract Class PropertiesFilePropertySource</h3> + <div class="paragraph"> + <p>The abstract class PropertiesFilePropertySource can be used for implementing a PropertySource based on a URL instance that points to a .properites file. It requires a URL to be passed on the constructor:</p> + </div> + <div class="listingblock"> + <div class="content"> + <pre class="prettyprint highlight"><code class="language-java" data-lang="java">PropertiesFilePropertySource(URL url);</code></pre> + </div> + </div> + <div class="sect3"> + <h4 id="_abstract_class_propertiespropertysource">Abstract Class PropertiesPropertySource</h4> + <div class="paragraph"> + <p>The abstract class PropertiesPropertySource can be used for implementing a PropertySource based on a Properties instance. It requires a PropertySource to be passed on the constructor:</p> + </div> + <div class="listingblock"> + <div class="content"> + <pre class="prettyprint highlight"><code class="language-java" data-lang="java">PropertiesPropertySource(Properties properties);</code></pre> + </div> + </div> + </div> + <div class="sect3"> + <h4 id="_abstract_class_basepropertysource">Abstract Class BasePropertySource</h4> + <div class="paragraph"> + <p>The abstract class BasePropertySource can be used for implementing custom PropertySource classes. It requires only one method to implemented:</p> + </div> + <div class="listingblock"> + <div class="title"> + Implementing a PropertySource using BasePropertySource + </div> + <div class="content"> + <pre class="prettyprint highlight"><code class="language-java" data-lang="java">public class MyPropertySource extends BasePropertySource{ public String getName(){ // return a unique name for the property source, e.g. based on the underlying resource. This name also @@ -570,35 +481,28 @@ one method to implemented:</p> // by default property sources are assumed to be scannable. } -}</code></pre> -</div> -</div> -<div class="paragraph"> -<p>By default the ordinal of the property sources will be 1000, unless the key tamaya.ordinal -as defined in PropertySource.TAMAYA_ORDINAL is present in the current PropertySource. Of course -it is also possible to override the inherited protected void initializeOrdinal(final int defaultOrdinal), -or directly int getOrdinal().</p> -</div> -</div> -</div> -<div class="sect2"> -<h3 id="CorePropertySourceProviders">Default PropertySourceProvider in Core</h3> -<div class="paragraph"> -<p>With org.apache.tamaya.core.provider.JavaConfigurationProvider there is also a default PropertySourceProvider -present that loads all .properties files found at META-INF/javaconfiguration.properties -and META-INF/javaconfiguration.xml.</p> -</div> -</div> -<div class="sect2"> -<h3 id="_replacing_the_property_value_evaluation_policy">Replacing the property value evaluation policy</h3> -<div class="paragraph"> -<p>Tamaya’s core implementation allows to replace the complete logic how a configuration value or the current configuration -properties are calculated from a given ConfigurationContext by implementing the ConfigValueEvaluator -interface:</p> -</div> -<div class="listingblock"> -<div class="content"> -<pre class="prettyprint highlight"><code class="language-java" data-lang="java">/** +}</code></pre> + </div> + </div> + <div class="paragraph"> + <p>By default the ordinal of the property sources will be 1000, unless the key tamaya.ordinal as defined in PropertySource.TAMAYA_ORDINAL is present in the current PropertySource. Of course it is also possible to override the inherited protected void initializeOrdinal(final int defaultOrdinal), or directly int getOrdinal().</p> + </div> + </div> + </div> + <div class="sect2"> + <h3 id="CorePropertySourceProviders">Default PropertySourceProvider in Core</h3> + <div class="paragraph"> + <p>With org.apache.tamaya.core.provider.JavaConfigurationProvider there is also a default PropertySourceProvider present that loads all .properties files found at META-INF/javaconfiguration.properties and META-INF/javaconfiguration.xml.</p> + </div> + </div> + <div class="sect2"> + <h3 id="_replacing_the_property_value_evaluation_policy">Replacing the property value evaluation policy</h3> + <div class="paragraph"> + <p>Tamayaâs core implementation allows to replace the complete logic how a configuration value or the current configuration properties are calculated from a given ConfigurationContext by implementing the ConfigValueEvaluator interface:</p> + </div> + <div class="listingblock"> + <div class="content"> + <pre class="prettyprint highlight"><code class="language-java" data-lang="java">/** * Component SPI which encapsulates the evaluation of a single or full <b>raw</b>value * for a {@link ConfigurationContext}. */ @@ -619,47 +523,37 @@ public interface ConfigValueEvaluator { */ Iterable<PropertyValue> evaluateRawValues(ConfigurationContext context); -}</code></pre> -</div> -</div> -<div class="paragraph"> -<p>The default implementation DefaultConfigValueEvaluator implements the following logic:</p> -</div> -<div class="olist arabic"> -<ol class="arabic"> -<li> -<p>Collect all PropertySources from the context.</p> -</li> -<li> -<p>Access PropertyValue get(String) (single key access)/ Map<String,PropertyValue> getProperties() -(config map access) from each property source and combine the previous with the next value using -the PropertyValueCombinationPolicy in place.</p> -</li> -</ol> -</div> -<div class="paragraph"> -<p>The resulting <em>raw</em> value(s) are then finally handed over to the registered filters and finally -converted to String/Map<String,String> as required by the user API.</p> -</div> -<div class="paragraph"> -<p>To replace this default behaviour you must register your implementation with the current -ServiceContext.</p> -</div> -</div> -</div> -</div> -<div class="sect1"> -<h2 id="Extensions">Adding Extensions</h2> -<div class="sectionbody"> -<div class="paragraph"> -<p>Tamaya <em>Core</em> only implements the <a href="api.html">API</a>. Many users require/wish additional functionality from a -configuration system. Fortunately there are numerous extensions available that add further functionality. -Loading extensions hereby is trivial: you only are required to add the corresponding dependency to the classpath.</p> -</div> -<div class="paragraph"> -<p>For detailed information on the extensions available refer to the <a href="extensions.html">extensions documentation</a>.</p> -</div> -</div> +}</code></pre> + </div> + </div> + <div class="paragraph"> + <p>The default implementation DefaultConfigValueEvaluator implements the following logic:</p> + </div> + <div class="olist arabic"> + <ol class="arabic"> + <li> <p>Collect all PropertySources from the context.</p> </li> + <li> <p>Access PropertyValue get(String) (single key access)/ Map<String,PropertyValue> getProperties() (config map access) from each property source and combine the previous with the next value using the PropertyValueCombinationPolicy in place.</p> </li> + </ol> + </div> + <div class="paragraph"> + <p>The resulting <em>raw</em> value(s) are then finally handed over to the registered filters and finally converted to String/Map<String,String> as required by the user API.</p> + </div> + <div class="paragraph"> + <p>To replace this default behaviour you must register your implementation with the current ServiceContext.</p> + </div> + </div> + </div> +</div> +<div class="sect1"> + <h2 id="Extensions">Adding Extensions</h2> + <div class="sectionbody"> + <div class="paragraph"> + <p>Tamaya <em>Core</em> only implements the <a href="api.html">API</a>. Many users require/wish additional functionality from a configuration system. Fortunately there are numerous extensions available that add further functionality. Loading extensions hereby is trivial: you only are required to add the corresponding dependency to the classpath.</p> + </div> + <div class="paragraph"> + <p>For detailed information on the extensions available refer to the <a href="extensions.html">extensions documentation</a>.</p> + </div> + </div> </div></p> <hr /> @@ -671,8 +565,8 @@ Loading extensions hereby is trivial: you only are required to add the correspon <div id="footer"> <div class="container"> <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a> - at <span>2018-05-03</span> | + | Baked with <a href="http://jbake.org">JBake <span>v2.6.1</span></a> + at <span>2018-05-17</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>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/cddd52a8/documentation/extensions.html ---------------------------------------------------------------------- diff --git a/documentation/extensions.html b/documentation/extensions.html index c937b6a..6703764 100644 --- a/documentation/extensions.html +++ b/documentation/extensions.html @@ -125,269 +125,268 @@ <h1></h1> </div> - <p><em>2018-04-26</em></p> + <p><em>2018-05-17</em></p> - <p><div class="sect1"> -<h2 id="_apache_tamaya_extension_modules">Apache Tamaya: Extension Modules</h2> -<div class="sectionbody"> -<!-- toc disabled --> -<div class="sect2"> -<h3 id="_mature_extensions">Mature Extensions</h3> -<div class="paragraph"> -<p>Mature extensions have a stable API and SPI, similar to the API and Implementations provided.</p> -</div> -<table class="tableblock frame-1 grid-all spread"> -<colgroup> -<col style="width: 33.3333%;"> -<col style="width: 33.3333%;"> -<col style="width: 33.3334%;"> -</colgroup> -<thead> -<tr> -<th class="tableblock halign-left valign-top"><em>Artifact</em></th> -<th class="tableblock halign-left valign-top"><em>Description</em></th> -<th class="tableblock halign-left valign-top"><em>Links</em></th> -</tr> -</thead> -<tbody> -<tr> -<td class="tableblock halign-left valign-top"></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">N/A: currently no extensions have reached that maturity level.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-collections</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Collections support.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_collections.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-events</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides support for publishing configuration changes</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_events.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-filter</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides a programmatic filter for config entries.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_filter.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-features</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides a simple feature check for loaded extensions.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_features.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-formats</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides an abstract model for configuration formats</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_formats.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-functions</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides several functional extension points.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_functions.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-injection-api</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides Tamaya’s injection annotations API.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_injection.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-injection</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides configuration injection services and configuration template support.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_injection.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-injection-cdi</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Java EE/standalone compliant CDI integration using CDI for injection.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_cdi.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-jndi</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides a JNDI based PropertySource.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_jndi.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-json</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides format support for JSON based configuration.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_json.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-microprofile</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Implemenation and Integration with the Microprofile API.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_microprofile.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-mutable-config</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides API/SPI for writing configuration</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_mutable_config.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-optional</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Lets a Tamaya configuration to be used as an optional project extension only.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_optional.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-osgi</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration with OSGI containers.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_osgi.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-resolver</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides placeholder and dynamic resolution functionality for configuration values.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_resolver.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-resources</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides ant-style resource path resolution</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_resources.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-spring</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration for Spring / Spring Boot.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_spring.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-yaml</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Support for using yaml as a configuration format.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_yaml.html">Documentation</a></p></td> -</tr> -</tbody> -</table> -<div class="admonitionblock note"> -<table> -<tr> -<td class="icon"> -<div class="title">Note</div> -</td> -<td class="content"> -The former Tamaya <em>Builder</em> extension module has been removed. The corresponding methods were integrated into -Tamaya’s main API’s ConfigurationContextBuilder interface. -</td> -</tr> -</table> -</div> -</div> -<div class="sect2"> -<h3 id="_extensions_sandbox">Extensions Sandbox</h3> -<div class="paragraph"> -<p>Extensions in <em>draft state</em> rather experimental or not yet very mature. API changes may occurr at any time -and the may also have severe issues or even not work at all. So use at your own risk or join and help -us getting them stable and well tested!</p> -</div> -<div class="admonitionblock note"> -<table> -<tr> -<td class="icon"> -<div class="title">Note</div> -</td> -<td class="content"> -All extensions currently require Java 8. -</td> -</tr> -</table> -</div> -<table class="tableblock frame-1 grid-all spread"> -<colgroup> -<col style="width: 33.3333%;"> -<col style="width: 33.3333%;"> -<col style="width: 33.3334%;"> -</colgroup> -<thead> -<tr> -<th class="tableblock halign-left valign-top"><em>Artifact</em></th> -<th class="tableblock halign-left valign-top"><em>Description</em></th> -<th class="tableblock halign-left valign-top"><em>Links</em></th> -</tr> -</thead> -<tbody> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-camel_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration with Apache Camel.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_camel.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-classloader-support</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Configuration services considering classloaderas.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_classloader_support.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-commons_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration Support for Apache Commons.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-configured-sysprops_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Tamaya configuration to be provided as System.getProperties().</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_sysprops.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-consul_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration with consul clusters.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_consul.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-etcd_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration with etcd clusters.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_etcd.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-hazelcast_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Integration with Hazelcast datagrids.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_hazelcast.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-jodatime_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides support for JodaTime.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_jodatime.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-management_alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides JMX support for inspecting configuration.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_management.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-metamodel_alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides an XML API for building configuration.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_metamodel-staged.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-remote_alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Remote configuration support using the server API.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_remote.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-server_alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Publishes configuration as a REST service.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_server.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-ui_alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides a web UI for a VM running Tamaya.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_ui.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-uom_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides additional converters based on the Units of Measurement JSR.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_uom.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-usagetracker_beta</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Allows tracking of configuration usage.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_usagetracker.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-validation-alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides an XML API for validating configuration.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_validation.html">Documentation</a></p></td> -</tr> -<tr> -<td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-vertx-alpha</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Provides Vertx integration.</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_vertx.html">Documentation</a></p></td> -</tr> -</tbody> -</table> -</div> -</div> + <p><div class="sect1"> + <h2 id="_apache_tamaya_extension_modules">Apache Tamaya: Extension Modules</h2> + <div class="sectionbody"> + <!-- toc disabled --> + <div class="sect2"> + <h3 id="_mature_extensions">Mature Extensions</h3> + <div class="paragraph"> + <p>Mature extensions have a stable API and SPI, similar to the API and Implementations provided.</p> + </div> + <table class="tableblock frame-1 grid-all spread"> + <colgroup> + <col style="width: 33.3333%;"> + <col style="width: 33.3333%;"> + <col style="width: 33.3334%;"> + </colgroup> + <thead> + <tr> + <th class="tableblock halign-left valign-top"><em>Artifact</em></th> + <th class="tableblock halign-left valign-top"><em>Description</em></th> + <th class="tableblock halign-left valign-top"><em>Links</em></th> + </tr> + </thead> + <tbody> + <tr> + <td class="tableblock halign-left valign-top"></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">N/A: currently no extensions have reached that maturity level.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-collections</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Collections support.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_collections.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-events</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides support for publishing configuration changes</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_events.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-filter</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides a programmatic filter for config entries.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_filter.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-features</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides a simple feature check for loaded extensions.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_features.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-formats</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides an abstract model for configuration formats</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_formats.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-functions</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides several functional extension points.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_functions.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-injection-api</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides Tamayaâs injection annotations API.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_injection.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-injection</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides configuration injection services and configuration template support.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_injection.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-injection-cdi</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Java EE/standalone compliant CDI integration using CDI for injection.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_cdi.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-jndi</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides a JNDI based PropertySource.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_jndi.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-json</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides format support for JSON based configuration.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_json.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-microprofile</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Implemenation and Integration with the Microprofile API.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_microprofile.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-mutable-config</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides API/SPI for writing configuration</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_mutable_config.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-optional</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Lets a Tamaya configuration to be used as an optional project extension only.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_optional.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-osgi</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration with OSGI containers.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_osgi.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-resolver</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides placeholder and dynamic resolution functionality for configuration values.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_resolver.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-resources</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides ant-style resource path resolution</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_resources.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-spring</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration for Spring / Spring Boot.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_spring.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-yaml</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Support for using yaml as a configuration format.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_yaml.html">Documentation</a></p></td> + </tr> + </tbody> + </table> + <div class="admonitionblock note"> + <table> + <tbody> + <tr> + <td class="icon"> + <div class="title"> + Note + </div> </td> + <td class="content"> The former Tamaya <em>Builder</em> extension module has been removed. The corresponding methods were integrated into Tamayaâs main APIâs ConfigurationContextBuilder interface. </td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="sect2"> + <h3 id="_extensions_sandbox">Extensions Sandbox</h3> + <div class="paragraph"> + <p>Extensions in <em>draft state</em> rather experimental or not yet very mature. API changes may occurr at any time and the may also have severe issues or even not work at all. So use at your own risk or join and help us getting them stable and well tested!</p> + </div> + <div class="admonitionblock note"> + <table> + <tbody> + <tr> + <td class="icon"> + <div class="title"> + Note + </div> </td> + <td class="content"> All extensions currently require Java 8. </td> + </tr> + </tbody> + </table> + </div> + <table class="tableblock frame-1 grid-all spread"> + <colgroup> + <col style="width: 33.3333%;"> + <col style="width: 33.3333%;"> + <col style="width: 33.3334%;"> + </colgroup> + <thead> + <tr> + <th class="tableblock halign-left valign-top"><em>Artifact</em></th> + <th class="tableblock halign-left valign-top"><em>Description</em></th> + <th class="tableblock halign-left valign-top"><em>Links</em></th> + </tr> + </thead> + <tbody> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-camel_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration with Apache Camel.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_camel.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-classloader-support</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Configuration services considering classloaderas.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_classloader_support.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-commons_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration Support for Apache Commons.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-configured-sysprops_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Tamaya configuration to be provided as System.getProperties().</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_sysprops.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-consul_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration with consul clusters.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_consul.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-etcd_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration with etcd clusters.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_etcd.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-hazelcast_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Integration with Hazelcast datagrids.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_hazelcast.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-jodatime_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides support for JodaTime.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_jodatime.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-management_alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides JMX support for inspecting configuration.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_management.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-metamodel_alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides an XML API for building configuration.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_metamodel-staged.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-remote_alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Remote configuration support using the server API.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_remote.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-server_alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Publishes configuration as a REST service.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_server.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-ui_alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides a web UI for a VM running Tamaya.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_ui.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-uom_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides additional converters based on the Units of Measurement JSR.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_uom.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-usagetracker_beta</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Allows tracking of configuration usage.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_usagetracker.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-validation-alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides an XML API for validating configuration.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_validation.html">Documentation</a></p></td> + </tr> + <tr> + <td class="tableblock halign-left valign-top"><p class="tableblock">org.apache.tamaya.ext:tamaya-vertx-alpha</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock">Provides Vertx integration.</p></td> + <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="extensions/mod_vertx.html">Documentation</a></p></td> + </tr> + </tbody> + </table> + </div> + </div> </div></p> <hr /> @@ -399,8 +398,8 @@ All extensions currently require Java 8. <div id="footer"> <div class="container"> <p class="muted credit">© 2014-<span>2018</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> - | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a> - at <span>2018-05-03</span> | + | Baked with <a href="http://jbake.org">JBake <span>v2.6.1</span></a> + at <span>2018-05-17</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>
