Repository: incubator-tamaya-site
Updated Branches:
  refs/heads/master f996acade -> 06e3e4c08


Moved asciido latest from core to site.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/commit/40e8f73e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/tree/40e8f73e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/diff/40e8f73e

Branch: refs/heads/master
Commit: 40e8f73ef4a9d72313924fb29dcdb7ee838ad6e2
Parents: f996aca
Author: Anatole Tresch <[email protected]>
Authored: Fri Nov 18 07:02:57 2016 +0100
Committer: Anatole Tresch <[email protected]>
Committed: Fri Nov 18 07:02:57 2016 +0100

----------------------------------------------------------------------
 content/extensions/mod_camel.adoc               |   4 +-
 content/extensions/mod_cdi.adoc                 |  12 +-
 content/extensions/mod_classloader_support.adoc |   3 +-
 content/extensions/mod_collections.adoc         |   4 +-
 content/extensions/mod_consul.adoc              |   4 +-
 content/extensions/mod_environment.adoc         |   3 +-
 content/extensions/mod_etcd.adoc                |   4 +-
 content/extensions/mod_events.adoc              | 152 +++++--------------
 content/extensions/mod_filter.adoc              |  33 ++--
 content/extensions/mod_formats.adoc             |  77 ++++------
 content/extensions/mod_functions.adoc           |   3 +-
 content/extensions/mod_injection.adoc           |  24 +--
 content/extensions/mod_jodatime.adoc            |   5 +-
 content/extensions/mod_json.adoc                |   5 +-
 content/extensions/mod_management.adoc          |   4 +-
 content/extensions/mod_mutable_config.adoc      | 151 ++++++++++--------
 content/extensions/mod_optional.adoc            |   3 +-
 content/extensions/mod_osgi.adoc                |   2 -
 content/extensions/mod_remote.adoc              |   4 +-
 content/extensions/mod_resolver.adoc            |  23 ++-
 content/extensions/mod_resources.adoc           |  23 ++-
 content/extensions/mod_server.adoc              |   4 +-
 content/extensions/mod_spi-support.adoc         |   3 +-
 content/extensions/mod_spring.adoc              |   4 +-
 content/extensions/mod_yaml.adoc                |   6 +-
 25 files changed, 250 insertions(+), 310 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_camel.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_camel.adoc 
b/content/extensions/mod_camel.adoc
index 9d9a60d..abb5199 100644
--- a/content/extensions/mod_camel.adoc
+++ b/content/extensions/mod_camel.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Integration with Apache Camel
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -142,4 +140,4 @@ again use Tamaya as the main configuration solutions only 
using Camel's default
     </bean>
 
 </beans>
------------------------------------------------
+-----------------------------------------------
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_cdi.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_cdi.adoc b/content/extensions/mod_cdi.adoc
index 41d91a8..e5fe95e 100644
--- a/content/extensions/mod_cdi.adoc
+++ b/content/extensions/mod_cdi.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Classloader Isolation Support
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -51,14 +49,14 @@ components will be compatible regardless if deployed in a 
pure SE, a Java EE (CD
 <dependency>
   <groupId>org.apache.tamaya.ext</groupId>
   <artifactId>tamaya-injection-api</artifactId>
-  <version>{tamaya-version}</version>
+  <version>{tamayaVersion}</version>
 </dependency>
 -----------------------------------------------
 
 
 === Compatibility
 
-Both modules are based on Java 7, so they will only run on Java 7 and beyond.
+Both modules are based on Java 7, so they will not run on Java 7 and beyond.
 
 
 === Installation
@@ -72,7 +70,7 @@ you never have installed both CDI extensions at the same time 
because this may b
 <dependency>
   <groupId>org.apache.tamaya.ext</groupId>
   <artifactId>tamaya-cdi-ee</artifactId>
-  <version>{tamaya-version}</version>
+  <version>{tamayaVersion}</version>
 </dependency>
 -----------------------------------------------
 
@@ -82,7 +80,7 @@ you never have installed both CDI extensions at the same time 
because this may b
 <dependency>
   <groupId>org.apache.tamaya.ext</groupId>
   <artifactId>tamaya-cdi-se</artifactId>
-  <version>{tamaya-version}</version>
+  <version>{tamayaVersion}</version>
 </dependency>
 -----------------------------------------------
 
@@ -230,4 +228,4 @@ private String value;
 
--------------------------------------------------------------------------------------
 
 In the example above +legacy.bKey+ defines an absolute key, which is not 
combined with any defined
-default section parts.
+default section parts.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_classloader_support.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_classloader_support.adoc 
b/content/extensions/mod_classloader_support.adoc
index 7b93a4b..f8bf529 100644
--- a/content/extensions/mod_classloader_support.adoc
+++ b/content/extensions/mod_classloader_support.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Classloader Isolation Support
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -89,3 +87,4 @@ hierarchies:
 
 * +PropertySource+, +PropertySourceProviders+
 * +PropertyFilters+, +PropertyCombinationPolicy+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_collections.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_collections.adoc 
b/content/extensions/mod_collections.adoc
index 61e5553..835a20c 100644
--- a/content/extensions/mod_collections.adoc
+++ b/content/extensions/mod_collections.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Collection Support
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -245,4 +243,4 @@ Of course these settings also can be combined:
 redefined-map=0==none | 1==single | 2==any
 _redefined-map.map-entry-separator===
 _redefined-map.item-separator=|
------------------------------------------------
+-----------------------------------------------
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_consul.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_consul.adoc 
b/content/extensions/mod_consul.adoc
index f29a2e1..5aa3055 100644
--- a/content/extensions/mod_consul.adoc
+++ b/content/extensions/mod_consul.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Integration with consul (Hashicorp)
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -72,4 +70,4 @@ in microservice containers to connect with the according 
consul cluster:
   server can be established a warning will be logged, but deployment will not 
fail.
 * 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+.
+  set to +cluster-config.+ a consul key of +host:known/all+ is mapped to 
+cluster-config.host:known/all+.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_environment.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_environment.adoc 
b/content/extensions/mod_environment.adoc
index df889ed..2e5921f 100644
--- a/content/extensions/mod_environment.adoc
+++ b/content/extensions/mod_environment.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Classloader Isolation Support
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -56,3 +54,4 @@ tbd
 === Reusable Base Classes
 
 tbd
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_etcd.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_etcd.adoc b/content/extensions/mod_etcd.adoc
index 4bad2a0..bfb4b30 100644
--- a/content/extensions/mod_etcd.adoc
+++ b/content/extensions/mod_etcd.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Integration with etcd (Core OS)
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -202,4 +200,4 @@ in microservice containers to connect with the according 
etcd cluster:
   system or environment property.
 * 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+.
+  set to +cluster-config.+ a etcd key of +host:known/all+ is mapped to 
+cluster-config.host:known/all+.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_events.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_events.adoc 
b/content/extensions/mod_events.adoc
index 30da423..7c2d8ef 100644
--- a/content/extensions/mod_events.adoc
+++ b/content/extensions/mod_events.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Events
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -29,7 +27,7 @@ toc::[]
 Tamaya Events is an extension module. Refer to the 
link:modules.html[extensions documentation] for further details
 about modules.
 
-Tamaya Events provides an abstraction for events like change events, when 
configuration has bee changed.
+Tamaya Events provides an abstraction for events like change events, when 
configuration has been changed.
 
 === Compatibility
 
@@ -72,10 +70,9 @@ public interface ConfigEventListener {
 }
 --------------------------------------------
 
-This mechanism can now be used to propagate configuration changes to all 
interested stakeholders. Hereby the payloed
+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 implementations and abstractions 
that are used to implement such
-features.
+give more details on the the provided event types and their usage.
 
 
 === Modelling Configuration Changes
@@ -87,18 +84,8 @@ be
 * removed configuration entries
 * changes on entries
 
-This is also reflected in the +ChangeType+ enum
 
-[source,java]
--------------------------------------------------------
-public enum ChangeType {
-    NEW,
-    DELETED,
-    UPDATED,
-}
--------------------------------------------------------
-
-This enum type is used within the +ConfigurationChange+ class, which 
implements the event sent for a changed
+The most important event modelled is the +ConfigurationChange+ class, which 
implements the event sent for a changed
 +Configuration+:
 
 [source,java]
@@ -115,8 +102,6 @@ public final class ConfigurationChange implements 
ConfigEvent<Configuration>, Se
     public String getVersion();
     @Override
     public long getTimestamp();
-    @Override
-    public long getTimestamp();
 
     // Event specific methods
 
@@ -135,7 +120,7 @@ public final class ConfigurationChange implements 
ConfigEvent<Configuration>, Se
 
 -------------------------------------------------------
 
-New instances of this class hereby are created using a fluent builder:
+New instances of this class hereby can be created using a fluent builder:
 
 [source,java]
 -------------------------------------------------------
@@ -145,8 +130,8 @@ ConfigurationChange change = 
ConfigurationChangeBuilder.of(config)
   .removeKeys("myRemovedKey").build();
 -------------------------------------------------------
 
-Also it is possible to directly compare 2 instances of configurations to 
create a matching +ConfigurationChange+
-instance:
+Also it is possible to directly compare 2 instances of configurations to 
create +ConfigurationChange+ that
+reflect the differences between the two configurations:
 
 [source,java]
 Comparing 2 configurations
@@ -159,8 +144,8 @@ ConfigurationChange change = 
ConfigurationChangeBuilder.of(config)
 
 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. Of course, your code has to register itself to listen for 
appropriate changes by implementing
-a +ConfigEventListener+:
+your component. For listening to configuration changes you must implement the
++ConfigEventListener+ functional interface:
 
 [source,java]
 .Implementing a ConfigChangeListener
@@ -189,52 +174,21 @@ You can *register* your implementation in 2 ways:
 
 === Modelling PropertySource Changes
 
-Beside that a whole configuration changes, also +PropertySource+ instance can 
change, e.g. by a configuration file
+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+.
 
 
-=== Modelling Configuration Context Changes
-
-The +ConfigurationContext+ models the container that manages all subcomponents 
that are used to define and
-evalaute a +Configuration+. In the case where configuration is dynamically 
loaded, e.g. by observing changes on a
-file folder, the +ConfigurationContext+ may change, so a corresponding 
+ConfigurationContextChange+ event is
-defined:
-
-[source,java]
--------------------------------------------------------
-public final class ConfigurationContextChange implements 
ConfigEvent<ConfigurationContext>, Serializable{
-
-    public static ConfigurationContextChange emptyChangeSet();
-
-    @Override
-    public ConfigurationContext getResource();
-    @Override
-    public Class<ConfigurationContext> getResourceType();
-    @Override
-    public String getVersion();
-    @Override
-    public long getTimestamp();
-
-    // specific methods
-    public Collection<PropertySourceChange> getPropertySourceChanges();
-    public Collection<PropertySourceChange> getPropertySourceUpdates();
-    public Collection<PropertySource> getRemovedPropertySources();
-    public Collection<PropertySource> getAddedPropertySources();
-    public Collection<PropertySource> getUpdatedPropertySources();
-    public boolean isAffected(PropertySource propertySource);
-    public boolean isEmpty();
-}
--------------------------------------------------------
-
-Similar to the +ConfigurationChange+ class you also must use a 
+ConfigurationContextChangeBuilder+ to create instances
-of +ConfigurationContextChange+.
-
 === The ConfigEventManager Singleton
 
 Main entry point of the events module is the +ConfigEventManager+ singleton 
class, which provides static accessor
 methods to the extension's functionality:
 
+* Adding/removing of +ConfigChangeListener+ instances, either globally or per 
event type.
+* Firing configuration events synchronously or asyncronously (mostly called by 
framework code).
+* Configuring the monitor that periodically checks for changes on the global 
+Configuration+ provided
+  by +ConfigurationProvider.getConfiguration()+.
+
 [source,java]
 -------------------------------------------------------
 public final class ConfigEventManager {
@@ -261,40 +215,35 @@ public final class ConfigEventManager {
 }
 -------------------------------------------------------
 
-Looking at the methods listed above you see that there is more functionality 
worth to be mentioned:
-
-* +ConfigCHangeListeners+ can be registered either _globally_ or for a certain 
_event type_ only.
-* +ConfigEvents+ can be published within the same thread, or asynchronously.
-
 
 ==== Monitoring of configuration changes
 
 The +ConfigEventManager+ also supports active monitoring of the current 
configuration to trigger corresponding change
-events to listeners registered. This feature is activated by default, but can 
be deactivated optionally. Nevertheless
-this feature is quite handy, since regularly polling your local 
+Configuration+ for any kind of changes is much
-more simpler than implementing change management on the +PropertySource+ 
level. With this feature you can easily
-implement also remote property source, which can deliver different 
configuration based on any changes done remotedly
-on another node in your system. If such a change happened Tamaya identifies it 
and triggers corresponding
-+ConfigurationChange" events automatically. Similarly changes in a 
configuration tree, can actively identified and
-broadcasted to the targeting nodes automatically.
+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.
 
 
 === Freezing Configurations and PropertySources
 
 +Configuration+ instances as well as +PropertySources+ are explicitly not 
required to be serializable. To enable easy
-serialization of these types as well as to fix a current state (e.g. for later 
comparison with a newly loaded instance)
-Tamaya allows to *freeze* instances of these types. Freezing hereby means
+serialization of these types a +Configuration+'s *current state can be frozen* 
(e.g. for later comparison with a newly
+loaded version). Freezing hereby means
 
 * all key/values are read-out by calling the +getProperties()+ method.
-* a meta data entry is added of the form +[meta]frozenAt=223273777652325677+, 
whichdefines the UTC timestamp in
+* a meta data entry is added of the form +_frozenAt=223273777652325677+, 
whichdefines the UTC timestamp in
   milliseconds when this instance was frozen.
+* if not already defined an +_id+ property will be added to the 
+Configuration+ containing the
+  identifier of the configuration.
 
-In code this is done easily as follows:
+In code freezing is a no-brainer:
 
 [source,java]
 .Freezing the current Configuration
 --------------------------------------------------
-Configuration frozenConfig = 
FrozenConfiguration.of(ConfigurationProvider.getConfiguration());
+Configuration config = ConfigurationProvider.getConfiguration();
+Configuration frozenConfig = FrozenConfiguration.of(config);
 --------------------------------------------------
 
 ... and similarly for a +PropertySource+:
@@ -302,51 +251,17 @@ Configuration frozenConfig = 
FrozenConfiguration.of(ConfigurationProvider.getCon
 [source,java]
 .Freezing the current Configuration
 --------------------------------------------------
-PropertySource frozenSource = 
FrozenPropertySource.of(ConfigurationProvider.getConfiguration());
+PropertySource propertySource = ...;
+PropertySource frozenSource = FrozenPropertySource.of(propertySource);
 --------------------------------------------------
 
 
-=== Modelling of an observing PropertySourceProvider.
-
-In Tamaya configuration data is provided by instances of +PropertySource+, 
which in case of a configuration directory
-may be provided by an implementation of +PropertySourceProvider+, which 
produces one +PropertySource+ (at least) per
-file detected. The events module provides a base provider implementation that
-
-* observes all changes in a +Path+
-* tries to reevaluate corresponding resources based on the 
+ConfigurationFormats+ supported.
-* it creates an instance of +ConfigurationContextChange+ reflecting the 
changed +ConfigurationContext+ and triggers
-  this event by calling +ConfigEventManager.fireEvent(contextChange);+.
-
-Additionally this module registers an instance of 
+ConfigEventListener<ConfigurationContextChange+>+, which listenes to
-these events. If such an event is triggered the listener tries to apply the 
changes by
-
-. accessing the current +Configuration+ and its +ConfigurationContext+
-. checking if the event is affecting the current +ConfigurationContext+.
-. in the case the current context is affected, based on the current 
+ConfigurationContext+ a new context is created,
-  whereas
-  .. all +PropertySources+ provided by this provider implementation type are 
removed.
-  .. the new +PropertySources+ loaded are added.
-. Finally the listener tries to apply the new +ConfigurationContext+ by 
calling the corresponding API methods of the
-  +ConfigurationProvider+:
-
-[source,java]
---------------------------------------------------
-try {
-    ConfigurationProvider.setConfigurationContext(newContext);
-} catch (Exception e) {
-    LOG.log(Level.INFO, "Failed to update the current ConfigurationContext due 
to config model changes", e);
-}
---------------------------------------------------
-
-So if the current +ConfigurationProvider+ supports reloading of the current 
+ConfigurationContext+ this will apply the
-changes to the current +Configuration+. Otherwise the change is logged, but no 
further actions are taken.
-
 
 === SPIs
 
 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 mus be registered 
using the current +ServiceContext+
+simple SE based implementation. As normal, implementation must be registered 
using the current +ServiceContext+
 active, by default using the Java +ServiceLoader+ mechanism.
 
 [source,java]
@@ -370,3 +285,10 @@ public interface ConfigEventManagerSpi {
         void enableChangeMonitor(boolean enable);
 }
 --------------------------------------------------
+
+
+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.
+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_filter.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_filter.adoc 
b/content/extensions/mod_filter.adoc
index 30c950d..0df0035 100644
--- a/content/extensions/mod_filter.adoc
+++ b/content/extensions/mod_filter.adoc
@@ -15,21 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-= Apache Tamaya -- Extension: Integration with etcd (Core OS)
-:jbake-type: page
-:jbake-status: published
+= Apache Tamaya -- Extension: User Filtering
 
 toc::[]
 
 
 [[Optional]]
-== COnfiguration Filtering (Extension Module)
+== User Filtering (Extension Module)
 === Overview
 
 The Tamaya filter module provides a simple singleton accessor that allows to 
explicitly add +PropertyFilter+ instances
 active on the current thread only. This can be very useful in many scenarios. 
Additionally this module adds
 standard filters that hide metadata entries when the full configuration map is 
accessed. When keys are accessed
-explcitily no filtering is applied and everything is visible.
+explicitily no filtering is applied and everything is visible.
 
 === Compatibility
 
@@ -52,7 +50,7 @@ To benefit from configuration builder support you only must 
add the correspondin
 
 === The Extensions Provided
 
-Tamaya Filter comes basically with 1 artifact:
+Tamaya Filter comes basically with 3 artifacts:
 
 * The +org.apache.tamaya.filter.ConfigurationFilter+ provides several static 
methods to register +PropertyFilter+
 instances on the current thread.
@@ -62,7 +60,7 @@ instances on the current thread.
 
 === The ConfigurationFilter
 
-The accessor mentioned implements the API for for adding 1PropertyFilters+ to 
the current thread (as thread local):
+The accessor mentioned implements the API for for adding +PropertyFilters+ to 
the current thread (as thread local):
 
 [source, java]
 -----------------------------------------------
@@ -75,20 +73,20 @@ public final class ConfigurationFilter implements 
PropertyFilter{
      * @see #clearFilters()
      * @param active true,to enable metadata filtering (default).
      */
-    public static void setMetadataFilter(boolean active);
+    public static void setFilterMetadata(boolean active);
 
     /**
      * Access the filtering configuration that is used for filtering single 
property values accessed.
      * @return the filtering config, never null.
      */
-    public static ProgrammableFilter getSingleFilters();
+    public static FilterContext getSingleFilterContext();
 
     /**
      * Access the filtering configuration that is used for filtering 
configuration properties accessed as full
      * map.
      * @return the filtering config, never null.
      */
-    public static ProgrammableFilter getMapFilters();
+    public static FilterContext getMapFilters();
 
     /**
      * Removes all programmable filters active on the current thread.
@@ -106,7 +104,7 @@ is part of this module, So you can add a customized filter 
as follows:
 [source, java]
 -----------------------------------------------
 try{
-    ConfigurationFilter.getMapFilters().addFilter(new 
RegexPropertyFilter("\\_.*"));
+    ConfigurationFilter.getMapFilters().addFilter(new myFilter());
 
     // do your code with filtering active
 }
@@ -116,20 +114,21 @@ finally{
 }
 -----------------------------------------------
 
-The +ProgrammableFilter+ is a simple structure just providing some handy 
accessors to the dynamic thread-local
+The +FilterContext+ is a simple structure just providing some handy accessors 
to the dynamic thread-local
 managed filters:
 
 [source, java]
 -----------------------------------------------
-public final class ProgrammableFilter implements PropertyFilter{
+public final class FilterContext implements PropertyFilter{
 
-    public void addFilter(PropertyFilter filter);
-    public void addFilter(int pos, PropertyFilter filter);
+    public void addIncludes(PropertyFilter filter);
+    public void addExcludes(int pos, PropertyFilter filter);
     public PropertyFilter removeFilter(int pos);
     public void clearFilters();
-    public void setFilters(PropertyFilter... filters);
-    public void setFilters(Collection<PropertyFilter> filters);
+    public void setIncludes(PropertyFilter... filters);
+    public void setExcludes(Collection<PropertyFilter> filters);
     public List<PropertyFilter> getFilters();
 
 }
 -----------------------------------------------
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_formats.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_formats.adoc 
b/content/extensions/mod_formats.adoc
index 1cd1679..19b89f3 100644
--- a/content/extensions/mod_formats.adoc
+++ b/content/extensions/mod_formats.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Formats
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -53,8 +51,6 @@ To benefit from dynamic value resolution you only must add 
the corresponding dep
 </dependency>
 -----------------------------------------------
 
-The module automatically registers an according +PropertyFilter+ that is 
automatically called, whenever a value
-is accessed.
 
 === The Idea
 
@@ -63,7 +59,7 @@ data structure (in our cases: property sources).
 
 ==== ConfigurationData
 
-Configuration formats can be very different. Some are simpley key/value pairs, 
whereas other also consist of multiple sections (e.g. ini-files) or
+Configuration formats can be very different. Some are simple key/value pairs, 
whereas other also consist of multiple sections (e.g. ini-files) or
 hierarchical data (e.g. yaml, xml). This is solved in Tamaya by mapping the 
configuration read into a normalized intermediary format called
 +ConfigurationData+:
 
@@ -77,13 +73,10 @@ public final class ConfigurationData {
 
     public Set<String> getSectionNames();
     public Map<String,String> getSection(String name);
-    public Map<String,Map<String,String>> getSections();
 
     public boolean hasDefaultProperties();
     public Map<String,String> getDefaultProperties();
-
     public Map<String,String> getCombinedProperties();
-    public boolean hasCombinedProperties();
 
     public boolean isEmpty();
 }
@@ -99,30 +92,14 @@ In detail the data read from a file is organized into 
_sections_ as follows:
   named sections, depending on the configuration format.
 * The method +getSectionNames()+ returns a set of all section names.
 * With +getSection(String name)+ a named section can be accessed.
-* With +getDefaultSection()+ the default section can be accessed.
+* With +getDefaultSection()+ the 'default' section can be accessed. This is a 
convenience method.
 * With +getCombinedProperties()+ a flattened entry map can be accessed built 
up (by default) out of
   ** all entries from the default section, without any changes.
-  ** all entries from named sections, where the key for each entry is prefix 
with the section name and a dot separator.
+  ** all entries from named sections, where the key for each entry is prefix 
with the section name and a '::' separator.
 * The configuration format used determines the mapping of configuration data 
read into this structure. The format
   implementation can as well provide alternate implementations of how the data 
read should be mapped into the
   combined properties map.
 
-Now for the conversion of +ConfigurationData+ into a +PropertySource+ 
different default approaches are used:
-
-. The +ConfigurationFormat+ that read the data can provide the (combined) 
properties accessible from
-  +getProperties()+ explcitly, which can be used to initialize a single 
+PropertySource+ containing the data read.
-. If the format did not set the final properties, but only a default section 
is present this default section
-  can be directly returned as combined properties.
-. In all other cases a properties can be uniquely mapped into one single 
properties Map, by prefixing all keys of each
-  section present with the (unique) section name and a '.' separator.
-
-Nevertheless, depending on the context, where a configuration source was read 
(classloader, time, source etc.) the
-resulting +PropertySource+ can have different semnatics, especially for the 
+PropertySources+ ordinal. Also section
-names may be mapped into different ordinals instead of using them as key 
prefixes (e.g. imagine configuration formats
-with a 'default', 'main', and 'overrides' sections). For such more complex or 
custom cases no useful default mapping
-can be defined. In such cases this functionality must be implemented in a 
_mapData_ method, which converts
-the normalized +ConfigData+ read to the appropriate collection of 
+PropertySource+ instances:
-
 
 ==== ConfigurationFormat
 
@@ -140,10 +117,20 @@ public interface ConfigurationFormat {
 -------------------------------------------------------
 
 
-Normally you need to map the resulting +ConfigurationData+ to one or multiple 
+PropertySources+. In case, where the
-properties provided match exactly the extected properties a 
+FlattenedDefaultPropertySource+ is provided out-of-the-box.
-If the exact mapping must be overridden, you can simply override the property 
source's initialize method to adapt the
-mapping:
+=== How to tranform ConfigurationData into a PropertySource
+
+For for the conversion of +ConfigurationData+ into a +PropertySource+ 
different approaches can be useful:
+
+. The +ConfigurationFormat+ that reads the data can provides all properties 
read either as sectioned properties
+  or/and as default properties. The most simple cases is, where all properties 
have been added as 'default'
+  properties. In this case the default properties can be used as the property 
sources properties without any change.
+. If the format did also add section based properties, the combined properties 
returned can be used, hereby
+  replacing the '::' separator with a '.' separator.
+. In all other cases a custom mapping is useful, which can be acomplished by 
using the +MappedConfigurationDataPropertySource+
+  and overriding the +Map<String,String> populateData(ConfigurationData data)+ 
method.
+
+In most cases the usage of a +FlattenedDefaultPropertySource+, is a good 
choice to start. This class
+provides a convenient default mapping and also allows to customized the 
mapping easily:
 
 [source,java]
 -------------------------------------------------------
@@ -155,23 +142,13 @@ FlattenedDefaultPropertySource ps = new 
FlattenedDefaultPropertySource(data){
 };
 -------------------------------------------------------
 
+Nevertheless, depending on the context, where a configuration source was read 
(classloader, time, source etc.) the
+resulting properties can have different semnatics, especially different 
priorities. Also section
+names may be mapped into different ordinals instead of using them as key 
prefixes (e.g. imagine configuration formats
+with a 'default', 'main', and 'overrides' sections). For such more complex or 
custom cases no simple mapping
+can be defined. Consequently the functionality mapping the normalized 
+ConfigurationData+ read to the
+appropriate collection of +PropertySource+ instances must be implemented.
 
-=== How to tranform ConfigurationData into a PropertySource
-
-The Tamaya main building block for configuration properties is the 
+PropertySource+ interface. You have several
-options to implement this tranformation:
-
-. You can simply map the properties returned by +getCombinedProperties()+ and 
use them as properties returned by a
-  wrapping property source. Since this use case is common for all kind of non 
hierarchic configuration formats it
-  is directly supported by the +FlattenedDefaultPropertySource+ class.
-. When the +ConfigurationFormat+ is more complex, multiple 'sections' are 
common. What a section exactly is depends on
-  the concrete format only. The +ConfigurationFormat+ should provide detailed 
information how the data read is
-  mapped to default properties and sections and how it is assembled into the 
+combinedProperties+ map. Also here
-  the +FlattenedDefaultPropertySource+ class can help you with its default 
mapping. Nevertheless in some cases it is
-  necessary to write an explicit mapping, e.g. when
-  . different sections must be mapped to multiple +PropertySources+, with 
optionally fixed ordinals.
-  . sections must be cross-checked and combined into new properties, or into 
several +PropertySources+.
-  . other complex mapping requirements apply.
 
 === Examples
 
@@ -200,9 +177,9 @@ This file content coud be mapped to the following structure:
 -------------------------------------------------------
 a=valA
 a.b=valB
-section1.valA=sectionValA
-section1.a.b.c=SectionValC
-section2.a=val2Section2
+section1::valA=sectionValA
+section1::a.b.c=SectionValC
+section2::a=val2Section2
 -------------------------------------------------------
 
 Nevertheless from the +ConfigurationData+ instance a more complex algorithm 
can access all the different parts:
@@ -241,3 +218,5 @@ module hereby ships with 3 format classes:
 * +PropertiesFormat+ providing support for .properties files.
 * +PropertiesXmlFormat+ providing support for xml.property files.
 * +IniConfiguratonFormat+ providing support for xml.property files.
+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_functions.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_functions.adoc 
b/content/extensions/mod_functions.adoc
index a7e891c..041ef75 100644
--- a/content/extensions/mod_functions.adoc
+++ b/content/extensions/mod_functions.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Functions
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -122,3 +120,4 @@ The following sections explain the provided functions 
defined by +PropertySource
   select of the returned values should be relative to its selection of be 
fully qualified.
 * *String stripSectionKeys(String key, String... sectionKeys)* This function 
strips away the matching section key as given
   in _sectionKeys_ from a given _key_.
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_injection.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_injection.adoc 
b/content/extensions/mod_injection.adoc
index dc68626..47f8872 100644
--- a/content/extensions/mod_injection.adoc
+++ b/content/extensions/mod_injection.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Injection
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -192,15 +190,15 @@ name=<unnamed>
 --------------------------------------------
 
 
-==== Accessing ConfiguredItemSupplier instances
+==== Accessing Supplier instances
 
 In many cases you want to create a supplier that simply creates instances that 
are correctly configured as defined
 by the current context. This can be done using +Suppliers+:
 
 [source, java]
 --------------------------------------------
-ConfiguredItemSupplier<Tenant> configuredTenantSupplier = 
ConfigurationInjector.getInstance().getConfiguredSupplier(
-  new ConfiguredItemSupplier<Tenant>(){
+Supplier<Tenant> configuredTenantSupplier = 
ConfigurationInjector.getInstance().getConfiguredSupplier(
+  new Supplier<Tenant>(){
      public Tenant get(){
        return new Tenant();
      }
@@ -211,11 +209,11 @@ With Java 8 it's even more simpler:
 
 [source, java]
 --------------------------------------------
-ConfiguredItemSupplier<Tenant> configuredTenantSupplier = 
ConfigurationInjector.getInstance().getConfiguredSupplier(
+Supplier<Tenant> configuredTenantSupplier = 
ConfigurationInjector.getInstance().getConfiguredSupplier(
   Tenant::new);
 --------------------------------------------
 
-Hereby this annotation can be used in multiple ways and combined with other 
annotations such as +@DefaultValue+,
+Hereby this annotation can be used in multiple ways and combined with other 
annotations such as
 +@WithLoadPolicy+, +@WithConfigOperator+, +@WithPropertyConverter+.
 
 ==== Minimal Example
@@ -247,7 +245,7 @@ In the next example we explicitly define the property value:
 --------------------------------------------
 pubic class ConfiguredItem{
 
-  @Config({"aValue", "a.b.value","a.b.deprecated.value"}, 
defaultValue="${env:java.version}")
+  @Config(value={"aValue", "a.b.value","a.b.deprecated.value"}, 
defaultValue="${env:java.version}")
   private String aValue;
 }
 --------------------------------------------
@@ -261,7 +259,7 @@ commit new values exactly, when convenient for you.
 --------------------------------------------
 pubic class ConfiguredItem{
 
-  @Config({"aValue", "a.b.value","a.b.deprecated.value"}, 
defaultValue="${env:java.version}")
+  @Config(value={"aValue", "a.b.value","a.b.deprecated.value"}, 
defaultValue="${env:java.version}")
   private DynamicValue aValue;
 }
 --------------------------------------------
@@ -294,8 +292,9 @@ public interface DynamicValue<T> {
 
     boolean isPresent();
     T orElse(T other);
-    T orElseGet(ConfiguredItemSupplier<? extends T> other);
-    <X extends Throwable> T orElseThrow(ConfiguredItemSupplier<? extends X> 
exceptionSupplier) throws X;
+    // Enabled with Java 8
+    // T orElseGet(ConfiguredItemSupplier<? extends T> other);
+    // <X extends Throwable> T orElseThrow(ConfiguredItemSupplier<? extends X> 
exceptionSupplier) throws X;
 
 }
 --------------------------------------------
@@ -443,3 +442,6 @@ public interface ConfiguredMethod {
     void configure(Object instance, Configuration config);
 }
 ----------------------------------------
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_jodatime.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_jodatime.adoc 
b/content/extensions/mod_jodatime.adoc
index e806af6..6dd05b6 100644
--- a/content/extensions/mod_jodatime.adoc
+++ b/content/extensions/mod_jodatime.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: JodaTime
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -62,3 +60,6 @@ To be written.
 === Specifing periods and durations
 
 To be written.
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_json.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_json.adoc b/content/extensions/mod_json.adoc
index 77c5b7d..691b27b 100644
--- a/content/extensions/mod_json.adoc
+++ b/content/extensions/mod_json.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Builder
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -47,6 +45,7 @@ To benefit from configuration builder support you only must 
add the correspondin
 </dependency>
 -----------------------------------------------
 
+This extension also transitively requires the +tamaya.formats+ module.
 
 === Reading configuration in JSON
 
@@ -75,3 +74,5 @@ according property maps. E.g. the following file is a simple 
and correct JSON co
     }
 }
 ----------------------------------------------------------------
+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_management.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_management.adoc 
b/content/extensions/mod_management.adoc
index f8050ec..b9f8de0 100644
--- a/content/extensions/mod_management.adoc
+++ b/content/extensions/mod_management.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: JMX Management Access
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -105,4 +103,4 @@ public final class ConfigManagementSupport{
 NOTE: The instance of +ManagedConfigMBean+ to be created and registered is 
evaluated by use og the
       +ServiceContextManager+. So you can replace the bean implementation by 
registering your
       overriding implementation using the current +ServiceContext+ (by default 
using
-      +java.util.ServiceLoader+ and +@Priority+ annotation.
+      +java.util.ServiceLoader+ and +@Priority+ annotation.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_mutable_config.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_mutable_config.adoc 
b/content/extensions/mod_mutable_config.adoc
index 2c15e9b..d38626e 100644
--- a/content/extensions/mod_mutable_config.adoc
+++ b/content/extensions/mod_mutable_config.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Mutable Configuration
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -49,6 +47,8 @@ To benefit from configuration mutability support you only 
must add the correspon
 
 === Core Architecture
 
+==== Accessing MutableConfiguration
+
 The core of the module is the +MutableConfigurationProvider+ singleton, which 
provides access to +MutableConfiguration+
 instance, which extends +Configuration+. This interface adds additional 
methods to add/update or remove property values.
 Hereby changes applied are managed in a transaction like context, called 
+ConfigChangeContext+. Each context defines
@@ -57,16 +57,17 @@ Backends for writing changes applied are of type 
+MutablePropertySource+, simila
 SPI with methods for writing changes back. Registrations and ordering policies 
are like with ordinary property sources,
 with one important difference. Mutable property source can be targeted by 
write operations.
 
-Summarizing a +MutableConfiguration+ can be obtained as follows:
+The example below shows how a +MutableConfiguration+ can be obtained the 
simplest way:
 
 [source,java]
-.Accessing and changing a configuration
+.Accessing and changing configuration
 --------------------------------------------
-MutableConfiguration config = 
MutableConfigurationProvider.createMutableConfiguration();
-config.set("newKey", "newValue")
-      .set("anotherKey", "updatedValue")
+MutableConfiguration config = MutableConfigurationProvider
+                                      .createMutableConfiguration();
+config.put("newKey", "newValue")
+      .put("anotherKey", "updatedValue")
       .remove("valueNotValid")
-      .commit();
+      .store();
 --------------------------------------------
 
 In the above scenario we use the overall system's configuration as the backend 
to be used.
@@ -76,15 +77,16 @@ We can also pass any +Configuration+ to render it into a 
mutable instance, e.g.
 .Explicitly passing the backing configuration
 --------------------------------------------
 Configuration config = ...;
-MutableConfiguration config =
-    MutableConfigurationProvider.createMutableConfiguration(config);
+MutableConfiguration config = MutableConfigurationProvider
+                                       .createMutableConfiguration(config);
 --------------------------------------------
 
-NOTE: If a configuration does not contain any +MutablePropertySource+ 
instances, a +MutableConfiguration+ built
-      from it will not be able to accept any changes.
+NOTE: If a configuration does not contain any +MutablePropertySource+ 
instances,
+      a +MutableConfiguration+ built from it will not be able to accept any 
changes.
 
 
-Following is the complete listing of the +MutableConfigurationProvider+ 
accessor:
+Following you see the options how to create a +MutableConfiguration+ using the
++MutableConfigurationProvider+ singleton:
 
 [source, java]
 ---------------------------------------------
@@ -92,8 +94,13 @@ public final class MutableConfigurationProvider {
 
     private MutableConfigurationProvider(){}
 
-    public static MutableConfiguration getMutableConfiguration();
-    public static MutableConfiguration getMutableConfiguration(Configuration 
configuration);
+    public static MutableConfiguration createMutableConfiguration();
+    public static MutableConfiguration createMutableConfiguration(
+                                               ChangePropagationPolicy 
changePropgationPolicy);
+    public static MutableConfiguration 
createMutableConfiguration(Configuration configuration);
+    public static MutableConfiguration createMutableConfiguration(
+                                                   Configuration configuration,
+                                                   ChangePropagationPolicy 
changePropgationPolicy);
 
     [...]
 }
@@ -105,24 +112,11 @@ Hereby +MutableConfiguration+ is defined as follows:
 ---------------------------------------------
 public interface MutableConfiguration extends Configuration {
 
-    UUID startTransaction();
-    void commitTransaction();
-    void rollbackTransaction();
-    UUID getTransactionId();
-    boolean getAutoCommit();
-    void setAutoCommit(boolean autoCommit);
+    void store();
 
-    void setChangePropagationPolicy(ChangePropagationPolicy 
changePropagationPolicy);
+    ConfigChangeRequest getConfigChangeRequest();
     ChangePropagationPolicy getChangePropagationPolicy();
 
-    boolean isWritable(String keyExpression);
-    boolean isRemovable(String keyExpression);
-    boolean isExisting(String keyExpression);
-    List<MutablePropertySource> getMutablePropertySources();
-    List<MutablePropertySource> getPropertySourcesThatCanWrite(String 
keyExpression);
-    List<MutablePropertySource> getPropertySourcesThatCanRemove(String 
keyExpression);
-    List<MutablePropertySource> getPropertySourcesThatKnow(String 
keyExpression);
-
     MutableConfiguration put(String key, String value);
     MutableConfiguration putAll(Map<String, String> properties);
     MutableConfiguration remove(Collection<String> keys);
@@ -134,7 +128,7 @@ public interface MutableConfiguration extends Configuration 
{
 
 ==== Targeting the right MutablePropertySources
 
-A +Configuration+ may have multiple +MutablePropertySource+ present. These are 
members of Tamaya's oredered list of
+A +Configuration+ may have multiple +MutablePropertySource+ instances present. 
These are members of Tamaya's oredered list of
 +PropertySources+ to evaluate the configuration. Nevertheless writing back 
changes requires additional aspects to
 be considered:
 * Should changes being written back to all mutable property sources? Or should 
a key that could be added or removed
@@ -149,10 +143,13 @@ this aspect:
 .Explicitly passing the backing configuration
 --------------------------------------------
 public interface ChangePropagationPolicy {
-    void applyChanges(Collection<PropertySource> propertySources, UUID 
transactionID, Map<String,String> changes);
-    void applyChange(Collection<PropertySource> propertySources, UUID 
transactionID, String key, String value);
-    void applyRemove(Collection<PropertySource> propertySources, UUID 
transactionID, String... keys);
-
+    /**
+     * Method being called when a multiple key/value pairs are added or 
updated.
+     * @param propertySources the property sources, including readable 
property sources of the current configuration,
+     *                        never null.
+     * @param configChange the configuration change, not null.
+     */
+    void applyChange(ConfigChangeRequest configChange, 
Collection<PropertySource> propertySources);
 }
 --------------------------------------------
 
@@ -165,10 +162,7 @@ Also the +MutableConfigurationProvider+ provides access to 
the most commonly use
 ---------------------------------------------
 public final class MutableConfigurationProvider {
 
-    private MutableConfigurationProvider(){}
-
-    public static MutableConfiguration getMutableConfiguration();
-    public static MutableConfiguration getMutableConfiguration(Configuration 
configuration);
+    [...]
 
     public static ChangePropagationPolicy getApplyAllChangePolicy();
     public static ChangePropagationPolicy 
getApplyMostSignificantOnlyChangePolicy();
@@ -181,34 +175,29 @@ public final class MutableConfigurationProvider {
 ==== Some Aspects to consider
 
 Due to Tamaya's design the effective effect of your changes to the overall 
configuration, cannot
-be easily predicted, since it depends on several aspects:
+be sometimes a bit tricky to be predicted, since it depends on several aspects:
 
 . is the corresponding configuration resource configured as part of the 
current system's configuration?
-. what is the +PropertySource's+ ordinal? Is it overriding or overridden by 
other sources?
+. what is the +PropertySource's+ priority within the configuration context? Is 
it overriding or overridden
+  by other sources?
 . is the change directly visible to the configuration system? E.g. injected 
values are normally not updated,
   whereas injecting a +DynamicValue<T>+ instance allows to detect and react 
single value changes. Also the
   +PropertySources+ implementation must be able to detect any configuration 
changes and adapt its values returned
-  accordingly.
+  accordingly. Finally values also can be marked as immutable or being cached.
 . Is configuration cached, or written/collected directly on access?
 . can the changes applied be committed at all?
 
 So it is part of your application configuration design to clearly define, 
which property sources may be read-only, which
-may be mutable, how overriding should work and to which backends finally any 
changes should be written back. To
-support such fine granular scenarios a +MutableConfiguration+ also offers 
methods to determine if a key
-is writable at all or can be removed or updated:
+may be mutable, how overriding should work and to which backends finally any 
changes should be written back. Nevertheless
+changing or adding value is very easy:
 
 [source,java]
-.Checking for mutability
+.Changing a configuration
 --------------------------------------------
 MutableConfiguration config = 
MutableConfigurationProvider.createMutableConfiguration();
-
-if(config,isWritable("mycluster.shared.appKey")){
-    config.set("newKey", "newValue");
-}
-if(config,isRemovable("mycluster.myapp.myKey")){
-    config.remove("mycluster.myapp.myKey");
-}
-config.commit();
+config.put("newKey", "newValue");
+config.remove("mycluster.myapp.myKey");
+config.store();
 --------------------------------------------
 
 
@@ -229,11 +218,42 @@ Multiple backends are supported. E.g. the _etcd_ 
integration module of Tamaya al
 corresponding SPI implementations/backends. By default this module comes with
 the following +MutablePropertySource+ implementations:
 
-* +MutablePropertySource+ resources, targeting local .properties files, 
following the +java.util.Properties+
+* +MutablePropertySource+ resources, targeting local +.properties+ files, 
using the +java.util.Properties+
   format.
-* +MutableXmlPropertySource+ resources, targeting local .xml property files, 
following the +java.util.Properties+
+* +MutableXmlPropertySource+ resources, targeting local +.xml+ property files, 
using the +java.util.Properties+
   XML format.
 
+==== Refreshable Property Sources
+
+Somehow similar to configuration changes applied explicitly is the case, where 
values of underlying
+configuration backends change and must be reflected in the new configuration 
tree. Examples are:
+
+* Configuration files being edited, added or removed.
+* Changes on remote servers like etcd, consul
+* etc.
+
+For having a common API for refreshable items a +Refreshable+ interface is 
defined:
+
+[source,java]
+.Refreshable interface
+--------------------------------------------
+/**
+ * Interface to be implemented by items that can be refreshed. By default
+ * these are property sources, but more types may be supported at a later
+ * point in time.
+ */
+public interface Refreshable {
+
+    /**
+     * Refreshes the item by reloading its internal state.
+     */
+    void refresh();
+
+}
+--------------------------------------------
+
+
+==== Refreshable Property Sources
 
 === SPIs
 
@@ -244,15 +264,20 @@ singleton accessor:
 .SPI: MutableConfigurationProviderSpi
 --------------------------------------------------
 public interface MutableConfigurationProviderSpi {
-   MutableConfiguration createMutableConfiguration(Configuration 
configuration);
+    /**
+     * Creates a new {@link MutableConfiguration} with {@code autoCommit = 
false} as default.
+     *
+     * @param configuration the configuration, not null.
+     * @param propagationPolicy policy that defines how changes are published 
to the property
+     *                          sources.
+     * @return a new mutable configuration instance.
+     */
+    MutableConfiguration createMutableConfiguration(Configuration 
configuration,
+                                                    ChangePropagationPolicy 
propagationPolicy);
 }
 --------------------------------------------------
 
-Implementations are registered with the current +ServiceContext+, by default 
as a
- +java.util.ServiceLoader+ service.
-
+Implementations are registered with the current +ServiceContext+ (using by 
default the
+ +java.util.ServiceLoader+ service).
 
-As convenience the following base classes are provided:
 
-* 
+org.apache.tamaya.mutableconfig.propertysource.AbstractMutablePropertySource+ 
simplifying implementation of
-  +MutablePropertySource+.

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_optional.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_optional.adoc 
b/content/extensions/mod_optional.adoc
index f97e052..369df68 100644
--- a/content/extensions/mod_optional.adoc
+++ b/content/extensions/mod_optional.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Optional Tamaya Configuration
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -68,3 +66,4 @@ BigDecimal interestRate =
                 .get("com.mycomp.ratecalculator.rate", BigDecimal.class))
                 .orElse(BigDecimal.of(0.05d));
 -----------------------------------------------
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_osgi.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_osgi.adoc b/content/extensions/mod_osgi.adoc
index 9a46fd0..52518a7 100644
--- a/content/extensions/mod_osgi.adoc
+++ b/content/extensions/mod_osgi.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extensions: OSGI Integrations
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_remote.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_remote.adoc 
b/content/extensions/mod_remote.adoc
index 4d947e5..d82b7ba 100644
--- a/content/extensions/mod_remote.adoc
+++ b/content/extensions/mod_remote.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Remote Configuration
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -128,4 +126,4 @@ public class RemotePropertySource extends 
BaseRemotePropertySource{
     }
 
 }
------------------------------------------------
+-----------------------------------------------
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_resolver.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_resolver.adoc 
b/content/extensions/mod_resolver.adoc
index 366c97e..c502272 100644
--- a/content/extensions/mod_resolver.adoc
+++ b/content/extensions/mod_resolver.adoc
@@ -1,8 +1,25 @@
-:jbake-type: page
-:jbake-status: published
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
 
 = Apache Tamaya -- Extension: Resolver
 
+include::temp-properties-files-for-site/attributes.adoc[]
+
+
 [[Core]]
 == Tamaya Resolver (Extension Module)
 
@@ -30,7 +47,7 @@ To benefit from dynamic value resolution you only must add 
the corresponding dep
 <dependency>
   <groupId>org.apache.tamaya.ext</groupId>
   <artifactId>tamaya-resolver</artifactId>
-  <version>{tamaya_version}</version>
+  <version>{tamaya_version_development}</version>
 </dependency>
 -----------------------------------------------
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_resources.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_resources.adoc 
b/content/extensions/mod_resources.adoc
index 3081149..7506859 100644
--- a/content/extensions/mod_resources.adoc
+++ b/content/extensions/mod_resources.adoc
@@ -1,8 +1,24 @@
-:jbake-type: page
-:jbake-status: published
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
 
 = Apache Tamaya -- Extension: Resources
 
+include::temp-properties-files-for-site/attributes.adoc[]
+
 [[Core]]
 == Tamaya Resources (Extension Module)
 === Overview
@@ -20,7 +36,7 @@ ant-styled resource patterns. To use this module add the 
following dependency:
 <dependency>
   <grooupId>org.apache.tamaya.ext</groupId>
   <artifactId>tamaya-resources</artifactId>
-  <version>{tamaya_version}</version>
+  <version>{tamaya_version_development}</version>
 </dependency>
 -----------------------------------------------
 
@@ -153,3 +169,4 @@ alternate implementation with an overriding +@Priority+ 
annotation added using t
 
 Additionally a +BaseResourceResolver+ class can be used to reduce the amount 
of code to be written
 on your own.
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_server.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_server.adoc 
b/content/extensions/mod_server.adoc
index 5238aca..44398d7 100644
--- a/content/extensions/mod_server.adoc
+++ b/content/extensions/mod_server.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Configuration Server
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -380,3 +378,5 @@ public final class ScopeManager {
 
 }
 -----------------------------------------------
+
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_spi-support.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_spi-support.adoc 
b/content/extensions/mod_spi-support.adoc
index 0e7892f..c507c1a 100644
--- a/content/extensions/mod_spi-support.adoc
+++ b/content/extensions/mod_spi-support.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Classloader Isolation Support
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -71,3 +69,4 @@ To benefit from Tamaya CDI integration you only must add the 
corresponding depen
 The component will not register any components but only providing portable 
base classes for some common SPI
 implementation tasks. It only depends on the API, so it should be safely 
reusable also with other implementations
 of the Tamaya API similarly.
+

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_spring.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_spring.adoc 
b/content/extensions/mod_spring.adoc
index 17bd96a..5f6d65e 100644
--- a/content/extensions/mod_spring.adoc
+++ b/content/extensions/mod_spring.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Spring Integration
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -147,4 +145,4 @@ public class ConfiguredSpringBean {
 }
 --------------------------------------------------------
 
-Summarizing you get all the nice features of Tamaya out of the box running 
with your Spring code.
+Summarizing you get all the nice features of Tamaya out of the box running 
with your Spring code.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/40e8f73e/content/extensions/mod_yaml.adoc
----------------------------------------------------------------------
diff --git a/content/extensions/mod_yaml.adoc b/content/extensions/mod_yaml.adoc
index eeb352c..85c1871 100644
--- a/content/extensions/mod_yaml.adoc
+++ b/content/extensions/mod_yaml.adoc
@@ -16,8 +16,6 @@
 // under the License.
 
 = Apache Tamaya -- Extension: Builder
-:jbake-type: page
-:jbake-status: published
 
 toc::[]
 
@@ -44,10 +42,11 @@ To benefit from configuration builder support you only must 
add the correspondin
 <dependency>
   <groupId>org.apache.tamaya.ext</groupId>
   <artifactId>tamaya-yaml</artifactId>
-  <version>{tamaya-version}</version>
+  <version>{tamayaVersion}</version>
 </dependency>
 -----------------------------------------------
 
+This extension also transitively requires the +tamaya.formats+ module.
 
 === Reading configuration in YAML
 
@@ -125,3 +124,4 @@ tax -> 251.42
 total -> 4443.52
 comments -> Late afternoon is best. Backup contact is Nancy Billsmer @ 
338-4338.
 ----------------------------------------------------------------
+

Reply via email to