diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc index 051619e2..e77498bd 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc @@ -74,9 +74,6 @@ A bean is _available for injection_ in a certain module if: * the bean is either not an alternative, or the module is a bean archive and the bean is a selected alternative for the application, and * the bean class is required to be accessible to classes in the module, according to the class accessibility requirements of the module architecture. -For a custom implementation of the `Bean` interface defined in <>, the container calls `getBeanClass()` to determine the bean class of the bean and `InjectionPoint.getMember()` and then `Member.getDeclaringClass()` to determine the class that declares an injection point. -// TODO this refers to Portable Extensions, maybe move to Full? maybe mention Build Compatible Extensions? - [[typesafe_resolution]] === Typesafe resolution diff --git a/spec/src/main/asciidoc/core/injectionandresolution_full.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution_full.asciidoc index a7ba40ca..adc97ad4 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution_full.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution_full.asciidoc @@ -88,14 +88,17 @@ The container automatically detects inconsistent specialization and treats it as ==== Inter-module injection in {cdi_full} -In addition to rules defined in <>, the following rules apply. +{cdi_full} extends the set of rules defined in <>. +Below is a complete set of rules. -A bean is also _available for injection_ in a certain module if: +A bean is _available for injection_ in a certain module if: -* the bean is not a decorator, -* the bean is either not an alternative, or the module is a bean archive and the bean is a selected alternative of the bean archive. +* the bean is not an interceptor +* the bean is enabled, +* the bean is either not an alternative, or the module is a bean archive and the bean is a selected alternative for the application, and +* the bean class is required to be accessible to classes in the module, according to the class accessibility requirements of the module architecture. -// TODO here, maybe we shouldn't do "in addition to", but "is overridden" and spell out the full rules again +For a custom implementation of the `Bean` interface defined in <>, the container calls `getBeanClass()` to determine the bean class of the bean and `InjectionPoint.getMember()` and then `Member.getDeclaringClass()` to determine the class that declares an injection point. [[typesafe_resolution_full]]