You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2015/10/16 20:59:52 UTC

[10/11] incubator-tamaya git commit: TAMAYA-124: Unifying annotations for SE and EE based injection - adapted/unified docs as well.

TAMAYA-124: Unifying annotations for SE and EE based injection - adapted/unified docs as well.


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

Branch: refs/heads/master
Commit: ccfc61eebd3532488e1c89969697e9ad5f2ab45e
Parents: 29d7ca7
Author: anatole <an...@apache.org>
Authored: Fri Oct 16 20:10:21 2015 +0200
Committer: anatole <an...@apache.org>
Committed: Fri Oct 16 20:10:21 2015 +0200

----------------------------------------------------------------------
 src/site/asciidoc/extensions/mod_cdi-ee.adoc | 216 -------------------
 src/site/asciidoc/extensions/mod_cdi-se.adoc | 210 ------------------
 src/site/asciidoc/extensions/mod_cdi.adoc    | 249 ++++++++++++++++++++++
 src/site/asciidoc/extensions/modules.adoc    |   2 +-
 4 files changed, 250 insertions(+), 427 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ccfc61ee/src/site/asciidoc/extensions/mod_cdi-ee.adoc
----------------------------------------------------------------------
diff --git a/src/site/asciidoc/extensions/mod_cdi-ee.adoc b/src/site/asciidoc/extensions/mod_cdi-ee.adoc
deleted file mode 100644
index 77fd63b..0000000
--- a/src/site/asciidoc/extensions/mod_cdi-ee.adoc
+++ /dev/null
@@ -1,216 +0,0 @@
-= Apache Tamaya -- Extension: Classloader Isolation Support
-
-:name: Tamaya
-:rootpackage: org.apache.tamaya.integration.cdi
-:title: Apache Tamaya Extension: CDI Integration
-:revdate: September 2015
-:authorinitials: ATR
-:author: Anatole Tresch
-:email: <an...@apache.org>
-:source-highlighter: coderay
-:website: http://tamaya.incubator.apache.org/
-:toc:
-:toc-placement: manual
-:encoding: UTF-8
-:numbered:
-// 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.
-'''
-
-<<<
-
-toc::[]
-
-<<<
-:numbered!:
-<<<
-[[Remote]]
-== Tamaya CDI Integration (Extension Module)
-=== Overview
-
-The Tamaya CDI Integration provides CDI extensions implementing the following functionality:
-
-* Loading of CDI managed components as configuration extensions such as +PropertySources, PropertySourceProvieders,
-  PropertyFilters, etc+.
-* Enable Configuration Injection similar to Tamaya's Java SE based configuration injection services, but implemented
-  as a portable, Java EE compliant CDI extension.
-
-
-=== Compatibility
-
-The module is based on Java 7, so it will not run on Java 7 and beyond.
-
-
-=== Installation
-
-To benefit from Tamaya CDI integration you only must add the corresponding dependency to your module:
-
-[source, xml]
------------------------------------------------
-<dependency>
-  <groupId>org.apache.tamaya.ext</groupId>
-  <artifactId>tamaya-cdi</artifactId>
-  <version>{tamayaVersion}</version>
-</dependency>
------------------------------------------------
-
-The component will auto-register its components and override the default +ServicceContext+ in use. Additionally it
-registers CDI extensions that implement Configuration injection based on Tamaya's +Configuration+ present in the
-system/runtime context.
-
-IMPORTANT: Dont install Tamaya's +cdi-se+ module at the same time.
-
-=== How it Works
-
-This module registers a portable CDI extension to add the Configuration injection feature to CDI. Additionally
-this module overrides the +ServiceContext+ used, os it is aware of the CDI environment ans also considering the
-current CDI +BeaManager+ when looking up components (such as SPI classes).
-
-=== Adding SPI implementations managed as CDI beans
-
-This module registers as +ServiceContext+ and integrates CDI for component loading as well as configuration injection.
-All types injected by this module are injected using _dependent scope_. So with this module you can define/deploy
-your +PropertySources+ and other artifacts simply by adding corresponding CDI managed beans:
-
-[source, java]
---------------------------------------------------------
-@Singleton
-public class TestPropertySource implements PropertySource{
-
-    final Map<String,String> config = new HashMap<>();
-
-    public TestPropertySource(){
-        config.put("a.b.c.key1", "keys current a.b.c.key1");
-        config.put("a.b.c.key2", "keys current a.b.c.key2");
-        config.put("{"+getName()+"}source", getClass().getName());
-    }
-
-    @Override
-    public int getOrdinal() {
-        return 10;
-    }
-
-    @Override
-    public String getName() {
-        return getClass().getName();
-    }
-
-    @Override
-    public String get(String key) {
-        return config.get(key);
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        return config;
-    }
-
-    @Override
-    public boolean isScannable() {
-        return true;
-    }
-}
---------------------------------------------------------
-
-The +ServiceContext+ implementation hereby combines the components registered using the +ServiceLoader+ mechanism
-hereby considering classloaser hierarchies.
-
-
-=== Injecting Configuration
-
-This component also allows to inject configuration using Tamaya's type-safe injection mechanism:
-
-[source, java]
---------------------------------------------------------
-@RequestScoped
-public class ConfiguredClass{
-
-    @Config
-    private String testProperty;
-
-    @Config({"a.b.c.key1","a.b.c.key2","a.b.c.key3"})
-    @ConfigDefault("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
-    String value1;
-
-    @Config({"foo","a.b.c.key2"})
-    private String value2;
-
-    @Config
-    @ConfigDefault("N/A")
-    private String runtimeVersion;
-
-    @Config
-    @ConfigDefault("${sys:java.version}")
-    private String javaVersion2;
-
-    @Config
-    @ConfigDefault("5")
-    private Integer int1;
-
-    ...
-
-}
---------------------------------------------------------
-
-=== Advanced Use Cases
-
-Beside basic configuration Tamaya also covers additional requirements:
-
-* _Reading multiple keys, where the first successful one is determining the value of the configuration, is
-  simply possible, by adding multiple keys to the +@Config+ annotation.
-  E.g. for trying first +a.b+ and then +new.b+ you would configure it as follows:
-
-[source,java]
---------------------------------------------------------------------------------------
-@Config({"a.b", "new.b"}
-private String value;
---------------------------------------------------------------------------------------
-
-* When you must apply a +ConfigOperator+ to your config, before reading the configuration, you can
-  configure one as follows:
-
-[source,java]
---------------------------------------------------------------------------------------
-@Config({"a.b", "new.b"}
-@WithConfigOperator(MyOperator.class)
-private String value;
---------------------------------------------------------------------------------------
-
-* When you must apply a some special conversion, or you use a type that is not registered
-  for conversion, you can configure a custom converter to be applied as follows:
-
-[source,java]
---------------------------------------------------------------------------------------
-@Config({"a.b", "new.b"}
-@WithPropertyConverter(MyConverter.class)
-private MySpecialFooType value;
---------------------------------------------------------------------------------------
-
-* Often multiple keys in a class belong to the same root section. So instead of copying this to
-  every entry you can define the most common root sections in the type's header:
-
-[source,java]
---------------------------------------------------------------------------------------
-@ConfigDefaultSections({"aaaa", "new"});
-public class MyType{
-
-@Config({"b", "[legacy.bKey]"} // lookups: "aaaa.b", "new.b", legacy.bKey
-private String value;
---------------------------------------------------------------------------------------
-
-In the example above +legacy.bKey+ defines an absolute key, which is not combined with any defined
-default section parts.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ccfc61ee/src/site/asciidoc/extensions/mod_cdi-se.adoc
----------------------------------------------------------------------
diff --git a/src/site/asciidoc/extensions/mod_cdi-se.adoc b/src/site/asciidoc/extensions/mod_cdi-se.adoc
deleted file mode 100644
index fe28a89..0000000
--- a/src/site/asciidoc/extensions/mod_cdi-se.adoc
+++ /dev/null
@@ -1,210 +0,0 @@
-= Apache Tamaya -- Extension: Classloader Isolation Support
-
-:name: Tamaya
-:rootpackage: org.apache.tamaya.integration.cdi
-:title: Apache Tamaya Extension: CDI Integration of tamaya-injection (SE)
-:revdate: September 2015
-:authorinitials: ATR
-:author: Anatole Tresch
-:email: <an...@apache.org>
-:source-highlighter: coderay
-:website: http://tamaya.incubator.apache.org/
-:toc:
-:toc-placement: manual
-:encoding: UTF-8
-:numbered:
-// 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.
-'''
-
-<<<
-
-toc::[]
-
-<<<
-:numbered!:
-<<<
-[[Remote]]
-== Tamaya CDI Integration of tamaya-injection (Extension Module)
-=== Overview
-
-The Tamaya CDI injection Integration provides CDI extensions implementing the following functionality:
-
-* Loading of CDI managed components as configuration extensions such as +PropertySources, PropertySourceProvieders,
-  PropertyFilters, etc+.
-* Enable Tamaya's Java SE based configuration injection services with CDI. As a consequence injection and config lifecycle is managed
-  by thos module and not the CDI context.
-
-
-=== Compatibility
-
-The module is based on Java 7, so it will not run on Java 7 and beyond.
-
-
-=== Installation
-
-To benefit from Tamaya CDI integration you only must add the corresponding dependency to your module:
-
-[source, xml]
------------------------------------------------
-<dependency>
-  <groupId>org.apache.tamaya.ext</groupId>
-  <artifactId>tamaya-cdi-se</artifactId>
-  <version>{tamayaVersion}</version>
-</dependency>
------------------------------------------------
-
-The component will auto-register its components and override the default +ServicceContext+ in use. Additionally it
-registers CDI extensions that implement Configuration injection based on Tamaya's +tamaya-injection+ and
-+tamaya-classloader-support+ modules.
-
-IMPORTANT: Dont install Tamaya's +cdi+ at the same time.
-
-=== How it Works
-
-This module registers as +ServiceContext+ and integrates CDI for component loading as well as configuration injection.
-All types injected by this module are injected using _dependent scope_. So with this module you can define/deploy
-your +PropertySources+ and other artifacts simply by adding corresponding CDI managed beans:
-
-[source, java]
---------------------------------------------------------
-@Singleton
-public class TestPropertySource implements PropertySource{
-
-    final Map<String,String> config = new HashMap<>();
-
-    public TestPropertySource(){
-        config.put("a.b.c.key1", "keys current a.b.c.key1");
-        config.put("a.b.c.key2", "keys current a.b.c.key2");
-        config.put("{"+getName()+"}source", getClass().getName());
-    }
-
-    @Override
-    public int getOrdinal() {
-        return 10;
-    }
-
-    @Override
-    public String getName() {
-        return getClass().getName();
-    }
-
-    @Override
-    public String get(String key) {
-        return config.get(key);
-    }
-
-    @Override
-    public Map<String, String> getProperties() {
-        return config;
-    }
-
-    @Override
-    public boolean isScannable() {
-        return true;
-    }
-}
---------------------------------------------------------
-
-The +ServiceContext+ implementation hereby combines the components registered using the +ServiceLoader+ mechanism
-hereby considering classloaser hierarchies.
-
-
-=== Injecting Configuration
-
-This component also allows to inject configuration using Tamaya's type-safe injection mechanism:
-
-[source, java]
---------------------------------------------------------
-@RequestScoped
-public class ConfiguredClass{
-
-    @Config
-    private String testProperty;
-
-    @Config({"a.b.c.key1","a.b.c.key2","a.b.c.key3"})
-    @ConfigDefault("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
-    String value1;
-
-    @Config({"foo","a.b.c.key2"})
-    private String value2;
-
-    @Config
-    @ConfigDefault("N/A")
-    private String runtimeVersion;
-
-    @Config
-    @ConfigDefault("${sys:java.version}")
-    private String javaVersion2;
-
-    @Config
-    @ConfigDefault("5")
-    private Integer int1;
-
-    ...
-
-}
---------------------------------------------------------
-
-=== Advanced Use Cases
-
-Beside basic configuration Tamaya also covers additional requirements:
-
-* _Reading multiple keys, where the first successful one is determining the value of the configuration, is
-  simply possible, by adding multiple keys to the +@Configy+ annotation.
-  E.g. for trying first +a.b+ and then +new.b+ you would configure it as follows:
-
-[source,java]
---------------------------------------------------------------------------------------
-@Config({"a.b", "new.b"}
-private String value;
---------------------------------------------------------------------------------------
-
-* When you must apply a +ConfigOperator+ to your config, before reading the configuration, you can
-  configure one as follows:
-
-[source,java]
---------------------------------------------------------------------------------------
-@Config({"a.b", "new.b"}
-@WithConfigOperator(MyOperator.class)
-private String value;
---------------------------------------------------------------------------------------
-
-* When you must apply a some special conversion, or you use a type that is not registered
-  for conversion, you can configure a custom converter to be applied as follows:
-
-[source,java]
---------------------------------------------------------------------------------------
-@Config({"a.b", "new.b"}
-@WithPropertyConverter(MyConverter.class)
-private MySpecialFooType value;
---------------------------------------------------------------------------------------
-
-* Often multiple keys in a class belong to the same root section. So instead of copying this to
-  every entry you can define the most common root sections in the type's header:
-
-[source,java]
---------------------------------------------------------------------------------------
-@ConfigDefaultSections({"aaaa", "new"});
-public class MyType{
-
-@Config({"b", "[legacy.bKey]"} // lookups: "aaaa.b", "new.b", legacy.bKey
-private String value;
---------------------------------------------------------------------------------------
-
-In the example above +legacy.bKey+ defines an absolute key, which is not combined with any defined
-default section parts.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ccfc61ee/src/site/asciidoc/extensions/mod_cdi.adoc
----------------------------------------------------------------------
diff --git a/src/site/asciidoc/extensions/mod_cdi.adoc b/src/site/asciidoc/extensions/mod_cdi.adoc
new file mode 100644
index 0000000..cff0cf2
--- /dev/null
+++ b/src/site/asciidoc/extensions/mod_cdi.adoc
@@ -0,0 +1,249 @@
+= Apache Tamaya -- Extension: Classloader Isolation Support
+
+:name: Tamaya
+:rootpackage: org.apache.tamaya.integration.cdi
+:title: Apache Tamaya Extension: CDI Integration of tamaya-injection (SE)
+:revdate: September 2015
+:authorinitials: ATR
+:author: Anatole Tresch
+:email: <an...@apache.org>
+:source-highlighter: coderay
+:website: http://tamaya.incubator.apache.org/
+:toc:
+:toc-placement: manual
+:encoding: UTF-8
+:numbered:
+// 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.
+'''
+
+<<<
+
+toc::[]
+
+<<<
+:numbered!:
+<<<
+[[Remote]]
+== Tamaya CDI Integration (Extension Modules)
+=== Overview
+
+Apache Tamaya currently provides two implementations for integration with CDI extensions implementing similar
+functionality as described in this document:
+
+* Loading of CDI managed SPI components as configuration extensions such as +PropertySources, PropertySourceProviders,
+  PropertyFilters, etc+. This also includes SPI defined by any Tamaya submodules.
+* Implement and enable Tamaya's configuration injection services with CDI.
+
+Hereby there are two implementations provided:
+
+* +tamaya-cdi-ee+ implements injection by using CDI's injection mechanism to inject configuration values into the
+  beans managed by the CDI systems.
+* +tamaya-cdi-se+ implements injection by integrating the +tamaya-injection+ SE based injection module (also used
+  for Spring and OSGI injection) with CDI. Injection hereby is performed by the Tamaya SE module, whereas
+  beans and injection control overall are still managed by CDI.
+* One difference, of course, is that +tamaya-se+ also provides an SE compatible API (+ConfigurationInjection,
+  ConfigurationInjector+), which is not available, when using the purely Java EE based variant.
+
+The annotations used for all injection functionality in Tamaya is defined as a separate module. This allows you to
+code against the injection API without dependency on the concrete injection implementation. As a consequence your
+components will be compatible regardless if deployed in a pure SE, a Java EE (CDI) or OSGI or Spring environment:
+
+-----------------------------------------------
+<dependency>
+  <groupId>org.apache.tamaya.ext</groupId>
+  <artifactId>tamaya-injection-api</artifactId>
+  <version>{tamayaVersion}</version>
+</dependency>
+-----------------------------------------------
+
+
+=== Compatibility
+
+Both modules are based on Java 7, so they will not run on Java 7 and beyond.
+
+
+=== Installation
+
+To benefit from Tamaya CDI integration you only must one of the following dependencies to your module. Ensure that
+you never have installed both CDI extensions at the same time because this may be lead to unforseen side-effects.
+
+.CDI Pure Application Configuration
+[source, xml]
+-----------------------------------------------
+<dependency>
+  <groupId>org.apache.tamaya.ext</groupId>
+  <artifactId>tamaya-cdi-ee</artifactId>
+  <version>{tamayaVersion}</version>
+</dependency>
+-----------------------------------------------
+
+.CDI enhanced with Tamaya SE Application Configuration
+[source, xml]
+-----------------------------------------------
+<dependency>
+  <groupId>org.apache.tamaya.ext</groupId>
+  <artifactId>tamaya-cdi-se</artifactId>
+  <version>{tamayaVersion}</version>
+</dependency>
+-----------------------------------------------
+
+Both components will auto-register its components and override the default +ServicceContext+ in use. Additionally they
+register CDI extensions that implement Configuration injection as described before.
+
+IMPORTANT: Never install Tamaya's +tamaya-cdi-se+ and +tamaya-cdi-ee+ on the same system, since unpredictable side
+           effects could occur.
+
+=== Registering CDI managed components into the Application's ConfigurationContext
+
+As mentioned both modules allow to provide Tamaya SPI extensions modules as ordinary CDI managed beans. By default
+extensions should be registered using +@Singleton+ or +@ApplicationScoped+ scope annotations. So you can define/deploy
+additional application specific +PropertySources+ and other artifacts simply by defining a CDI managed bean implementing
+the required SPI interface:
+
+[source, java]
+--------------------------------------------------------
+@Singleton
+public class TestPropertySource implements PropertySource{
+
+    final Map<String,String> config = new HashMap<>();
+
+    public TestPropertySource(){
+        config.put("a.b.c.key1", "keys current a.b.c.key1");
+        config.put("a.b.c.key2", "keys current a.b.c.key2");
+        config.put("{"+getName()+"}source", getClass().getName());
+    }
+
+    @Override
+    public int getOrdinal() {
+        return 10;
+    }
+
+    @Override
+    public String getName() {
+        return getClass().getName();
+    }
+
+    @Override
+    public String get(String key) {
+        return config.get(key);
+    }
+
+    @Override
+    public Map<String, String> getProperties() {
+        return config;
+    }
+
+    @Override
+    public boolean isScannable() {
+        return true;
+    }
+}
+--------------------------------------------------------
+
+Note that for many SPI's there is a priority mechanism using +@Priority+ annotations in place.
+The +ServiceContext+ implementation combines the components registered with the ones loaded from the +ServiceLoader+
+mechanism hereby considering classloaser hierarchies.
+
+
+=== Annotating your Classes
+
+Basically annotating your classes is stright forward. +@Config+ defines an additional CDI qualifier that is, depending
+on the module deployed, handled by a CDI producer (+tamaya-cdi-ee+) or the Tamaya SE injection mechanism $
+(+tamaya-cdi-se+). All types injected by this module are injected using _dependent scope_.
+
+
+[source, java]
+--------------------------------------------------------
+@RequestScoped
+public class ConfiguredClass{
+
+    @Config
+    private String testProperty;
+
+    @Config({"a.b.c.key1","a.b.c.key2","a.b.c.key3"})
+    @ConfigDefault("The current \\${JAVA_HOME} env property is ${env:JAVA_HOME}.")
+    String value1;
+
+    @Config({"foo","a.b.c.key2"})
+    private String value2;
+
+    @Config
+    @ConfigDefault("N/A")
+    private String runtimeVersion;
+
+    @Config
+    @ConfigDefault("${sys:java.version}")
+    private String javaVersion2;
+
+    @Config
+    @ConfigDefault("5")
+    private Integer int1;
+
+    ...
+
+}
+--------------------------------------------------------
+
+=== Advanced Use Cases
+
+Beside basic configuration Tamaya also covers additional requirements:
+
+* _Reading multiple keys, where the first successful one is determining the value of the configuration, is
+  simply possible, by adding multiple keys to the +@Configy+ annotation.
+  E.g. for trying first +a.b+ and then +new.b+ you would configure it as follows:
+
+[source,java]
+--------------------------------------------------------------------------------------
+@Config({"a.b", "new.b"}
+private String value;
+--------------------------------------------------------------------------------------
+
+* When you must apply a +ConfigOperator+ to your config, before reading the configuration, you can
+  configure one as follows:
+
+[source,java]
+--------------------------------------------------------------------------------------
+@Config({"a.b", "new.b"}
+@WithConfigOperator(MyOperator.class)
+private String value;
+--------------------------------------------------------------------------------------
+
+* When you must apply a some special conversion, or you use a type that is not registered
+  for conversion, you can configure a custom converter to be applied as follows:
+
+[source,java]
+--------------------------------------------------------------------------------------
+@Config({"a.b", "new.b"}
+@WithPropertyConverter(MyConverter.class)
+private MySpecialFooType value;
+--------------------------------------------------------------------------------------
+
+* Often multiple keys in a class belong to the same root section. So instead of copying this to
+  every entry you can define the most common root sections in the type's header:
+
+[source,java]
+--------------------------------------------------------------------------------------
+@ConfigDefaultSections({"aaaa", "new"});
+public class MyType{
+
+@Config({"b", "[legacy.bKey]"} // lookups: "aaaa.b", "new.b", legacy.bKey
+private String value;
+--------------------------------------------------------------------------------------
+
+In the example above +legacy.bKey+ defines an absolute key, which is not combined with any defined
+default section parts.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ccfc61ee/src/site/asciidoc/extensions/modules.adoc
----------------------------------------------------------------------
diff --git a/src/site/asciidoc/extensions/modules.adoc b/src/site/asciidoc/extensions/modules.adoc
index 52fcecc..c77d906 100644
--- a/src/site/asciidoc/extensions/modules.adoc
+++ b/src/site/asciidoc/extensions/modules.adoc
@@ -69,7 +69,7 @@ NOTE All extensions, despite the _tamaya-builder_ module, currently run on Java
 |+org.apache.tamaya.ext:tamaya-server+        |Lets a Tamaya configuration instance provide scoped configuration as a http service.     |link:mod_server.html[Documentation]
 |+org.apache.tamaya.ext:tamaya-optional+      |Lets a Tamaya configuration to be used as an optional project extension only.  |link:mod_optional.html[Documentation]
 |+org.apache.tamaya.ext:tamaya-classloader-support+      |Manages Tamaya configuration and services considering classloading hierarchies.  |link:mod_classloader_support.html[Documentation]
-|+org.apache.tamaya.ext:tamaya-cdi-se+        |Tamaya integration module for CDI.                     |link:mod_cdi-se.html[Documentation]
+|+org.apache.tamaya.ext:tamaya-cdi+           |Tamaya integration modules for CDI.                    |link:mod_cdi.html[Documentation]
 |+org.apache.tamaya.ext:tamaya-spi-support+   |Tamaya support module for SPI implementation.          |link:mod_spi-support.html[Documentation]
 |=======