Merge branch 'master' of https://gitbox.apache.org/repos/asf/incubator-tamaya-site
diff --git a/content/documentation/extensions.adoc b/content/documentation/extensions.adoc
index 3186910..a71a749 100644
--- a/content/documentation/extensions.adoc
+++ b/content/documentation/extensions.adoc
@@ -46,18 +46,21 @@
[width="100%",frame="1",options="header",grid="all"]
|=======
-|_Artifact_ |_Description_ |_Links_
-|+org.apache.tamaya.ext:tamaya-camel_beta+ |Integration with Apache Camel. | link:extensions/mod_camel.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-commons_beta+ |Integration Support for Apache Commons. | -
-|+org.apache.tamaya.ext:tamaya-configured-sysprops_beta+ | Tamaya configuration to be provided as +System.getProperties()+. | link:extensions/mod_sysprops.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-jodatime_beta+ |Provides support for JodaTime. | link:extensions/mod_jodatime.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-management_alpha+ |Provides JMX support for inspecting configuration. |link:extensions/mod_management.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-metamodel_alpha+ |Provides an XML API for building configuration. |link:extensions/mod_metamodel-staged.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-remote_alpha+ |Remote configuration support using the server API. |link:extensions/mod_remote.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-server_alpha+ |Publishes configuration as a REST service. |link:extensions/mod_server.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-ui_alpha+ |Provides a web UI for a VM running Tamaya. |link:extensions/mod_ui.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-uom_beta+ |Provides additional converters based on the Units of Measurement JSR. |link:extensions/mod_uom.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-usagetracker_beta+ |Allows tracking of configuration usage. |link:extensions/mod_usagetracker.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-validation-alpha+ |Provides an XML API for validating configuration. |link:extensions/mod_validation.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-vertx-alpha+ |Provides Vertx integration. |link:extensions/mod_vertx.html[Documentation]
+|_Artifact_ |_Description_ |_Links (if available)_
+|+org.apache.tamaya.ext:tamaya-camel_beta+ |Integration with Apache Camel. | link:extensions/mod_camel.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-commons-config_beta+ |Integration Support for Apache Commons. | -
+|+org.apache.tamaya.ext:tamaya-doc_alpha+ |Provides support for generating Configuration Documentation. | -
+|+org.apache.tamaya.ext:tamaya-hjson_alpha+ |Provides support for using HJSON as configuration format. | -
+|+org.apache.tamaya.ext:tamaya-jodatime_beta+ |Provides support for JodaTime. | link:extensions/mod_jodatime.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-jsr382+ |Implementation of the current JSR 382 API. | - (Checkout the JSR's documentation)
+|+org.apache.tamaya.ext:tamaya-management_alpha+ |Provides JMX support for inspecting configuration. | link:extensions/mod_management.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-metamodel_alpha+ |Provides an XML API for building configuration. | link:extensions/mod_metamodel-staged.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-propertysources+ |Provides different property source base classes. | -
+|+org.apache.tamaya.ext:tamaya-remote_alpha+ |Remote configuration support using the server API. | link:extensions/mod_remote.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-server_alpha+ |Publishes configuration as a REST service. | link:extensions/mod_server.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-ui_alpha+ |Provides a web UI for a VM running Tamaya. | link:extensions/mod_ui.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-uom_beta+ |Provides additional converters based on the Units of Measurement JSR. | link:extensions/mod_uom.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-usagetracker_beta+ |Allows tracking of configuration usage. | link:extensions/mod_usagetracker.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-validation-alpha+ |Provides an XML API for validating configuration. | link:extensions/mod_validation.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-vertx-alpha+ |Provides Vertx integration. | link:extensions/mod_vertx.html[Documentation]
|=======
diff --git a/content/documentation/extensions/mod_spring.adoc b/content/documentation/extensions/mod_spring.adoc
index 798431b..a85fff6 100644
--- a/content/documentation/extensions/mod_spring.adoc
+++ b/content/documentation/extensions/mod_spring.adoc
@@ -14,15 +14,11 @@
=== What functionality this module provides ?
-Tamaya _Spring_ currently provides full integration with Spring and Spring Boot:
+Tamaya _Spring_ allows to use Tamaya as a configuration backend for Spring or Spring Boot:
-* A Spring +@Configuration+ implementation that also provides a Tamaya based version of
- +org.springframework.context.support.PropertySourcesPlaceholderConfigurer+.
-* +org.apache.tamaya.integration.spring.TamayaEnvironment+ is the Tamaya based implementation of the Spring
- +Environment+ interface.
-* +TamayaSpringPropertySource+ implements an additional Spring +PropertySource+.
+* Tamaya is added via a +TamayaSpringPropertySource+ as an additional Spring +PropertySource+.
* Finally +org.apache.tamaya.integration.spring.SpringConfigInjectionPostProcessor+ implements a Bean +PostProcessor+,
- which adds all the fully fledged Tamaya configuration capabilities to Spring.
+ which adds all the fully fledged Tamaya configuration injection capabilities to Spring.
=== Compatibility
@@ -45,15 +41,15 @@
-----------------------------------------------
-=== Registering Tamaya Spring Configuration
+=== Configuring Tamaya Spring Configuration
-Basically to activate the Tamaya Spring support the most simple thing is to a enable the Tamaya package for being
-scanned for Spring components, e.g. using by annotation:
+Tamaya leverages standard Spring functionality of Spring. To activate and configure Tamaya just add the
+corresponding Tamaya annotation to your Spring Configuration:
[source, java]
--------------------------------------------------------
@SpringBootApplication
-@ComponentScan({"org.apache.tamaya.integration.spring"})
+@EnableTamayaConfig
public class SampleWebFreeMarkerApplication {
public static void main(String[] args) throws Exception {
@@ -63,54 +59,27 @@
}
--------------------------------------------------------
-Of course, you can still use Spring's XML configuration in a similar way:
-[source, xml]
+
+=== Extending or Overriding existing Spring Configuration
+
+By default Tamaya is overriding any existing Spring configuration. But you can also configure Tamaya to extend
+Spring configuration only as follows:
+
+[source, java]
--------------------------------------------------------
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
- <context:annotation-config />
- <context:component-scan base-package="org.apache.tamaya.integration.spring"/>
-
- ...
-
-</beans>
---------------------------------------------------------
-
-
-Though not recommended you can explicitly register the Tamaya related beans in your context configuration by hand:
-files:
-
-[source, xml]
---------------------------------------------------------
-<bean id="tamayaInjectionProcessor" name="tamayaInjectionProcessor" class="org.apache.tamaya.integration.spring.SpringConfigInjectionPostProcessor"/>
-<bean id="tamayaConfigProvider" name="tamayaConfigProvider" class="org.apache.tamaya.integration.spring.TamayaSpringConfig"/>
---------------------------------------------------------
-
-
-=== Configuring your Context
-
-After activation you can use Tamaya as a backend for property resolution, e.g. +propertyValue+
-is resolved from the current Tamaya configuration. See example below:
-
-[source, xml]
---------------------------------------------------------
-<bean id="configuredBean" name="configuredBean" class="org.apache.tamaya.integration.spring.ConfiguredSpringBean">
- <property name="message" value="${propertyValue}"/>
-</bean>
+@EnableTamayaConfig(extendOnly=true)
--------------------------------------------------------
=== Configuring your Beans
-Similarly you can inject any kind of configuration as supported by Tamaya into your Spring managed beans:
+Similarly you can inject any kind of configuration as supported by Tamaya into your Spring managed beans.
+Hereby both, Spring injection and Tamaya injection mechanisms are supported:
[source, java]
--------------------------------------------------------
-@ConfigDefaultSections("app.root") // optional <1>
+@ConfigSection("app.root") // optional <1>
@Component
public class ConfiguredSpringBean {
@@ -150,27 +119,16 @@
Summarizing you get all the nice features of Tamaya out of the box running
with your Spring code.
-=== Working with Dynamic Values
-
-Integration into Spring also includes for support for _dynamic values_:
-
-[source, java]
---------------------------------------------------------
-@Config(value = "foreground.color", required = false, defaultValue = "#DDDDDD")
-private DynamicValue<Color> foregroundColor;
---------------------------------------------------------
-
-Dynamic values are a very flexible mechanism for managing configuration changes.
-You can even use an update policy to define how you want to handle configuration
-changes for your configuration parameter:
-
-[source, java]
---------------------------------------------------------
-foregroundColor.setUpdatePolicy(UpdatePolicy.IMMEDEATE);
-foregroundColor.addPropertyChangeListener(() -> {
- System.out.println("New forground color: " + foregroundColor.get();
-});
---------------------------------------------------------
-
-IMPORTANT: For a full description of Tamaya's injection API please
+NOTE: For a full description of Tamaya's injection API please
refer to the link:extensions/mod_injection.html[corresponding documentation].
+
+
+=== Disabling Tamaya Injection
+
+If you dont like Tamaya injection, you can simply disable it:
+
+[source, java]
+--------------------------------------------------------
+@EnableTamayaConfig(disableTamayaInjection=true)
+--------------------------------------------------------
+
diff --git a/content/tamayaasastandard.adoc b/content/tamayaasastandard.adoc
new file mode 100644
index 0000000..8d6a3a8
--- /dev/null
+++ b/content/tamayaasastandard.adoc
@@ -0,0 +1,74 @@
+:jbake-type: page
+:jbake-status: published
+
+= Tamaya as a Standard
+
+Apache Tamaya (incubating) actually supports several configuration standards to
+provide a long term stable configuration solution.
+
+
+== JSR 382
+
+Tamaya implements a recent state of the Configuration JSR. The exact commit
+version of the JSR API implemented (the JSR has not yet released any version
+as of now) can be evaluated looing at the _tamaya-jsr382_ `pom.xml` in the
+sandbox repository.
+
+To use Tamaya aS a JSR-382 Configuration provider you must add the following
+dependency:
+
+[source,xml]
+---------
+<dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-jsr382</artifactId>
+ <version>${tamaya.version}</version>
+</dependency>
+---------
+
+Since this component is not yet officially released you must use the current snapshot
+version +0.4-incubating-SNAPSHOT+. You also must add the Apache Snapshot
+Repository to your build:
+
+[source,xml]
+---------
+<repository>
+ <id>apache.snapshots</id>
+ <name>Apache Development Snapshot Repository</name>
+ <url>https://repository.apache.org/content/repositories/snapshots/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+</repository>
+---------
+
+
+== Microprofile
+
+Tamaya implements the Microprofile Configuration API Version 1.1. To use Tamaya
+as a Micropropfile Configuration provider you must add the following dependency:
+
+[source,xml]
+---------
+<dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-microprofile</artifactId>
+ <version>${tamaya.version}</version>
+</dependency>
+---------
+
+
+== OSGI ConfigAdmin
+
+Tamaya's OSGI Support leverages the OSGI +org.osgi.service.cm.ConfigurationAdmin+
+configuration manager as defined in OSGI Compendiumn Version +4.3.1+. Hereby
+Tamaya can add or modify Configuration in OSGI, which may trigger change events.
+The exact behaviour can be controlled in many ways. By default Tamaya, does not change
+anything, when deployed in OSGI, without being configured todo so. For details
+check link:documentation/extensions/mod_osgi.html[Tamaya's OSGI Documentation].
+
+
+