-
Notifications
You must be signed in to change notification settings - Fork 77
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Decide on other mentions of Full-only concepts in the CDI Lite spec p…
…art.
- Loading branch information
Showing
5 changed files
with
69 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
[[lifecycle_full]] | ||
|
||
== Lifecycle of contextual instances in {cdi_full} | ||
|
||
[[biz_method_full]] | ||
|
||
=== Container invocations and interception in {cdi_full} | ||
|
||
Instead of the rules in <<biz_method>>, the following rules apply in {cdi_full}. | ||
|
||
When the application invokes: | ||
|
||
* a method of a bean via a contextual reference to the bean, as defined in <<contextual_reference>>, | ||
* a method of a bean via a non-contextual reference to the bean, if the instance was created by the container (e.g. using `InjectionTarget.produce()` or `UnmanagedInstance.produce()`, or | ||
* a method of a bean via a non-contextual reference to the bean, if the instance was enhanced with the `InterceptionFactory` interface as defined in <<interception_factory>>, | ||
|
||
the invocation is treated as a _business method invocation_. | ||
|
||
When the container invokes a method of a bean, the invocation may or may not be treated as a business method invocation: | ||
|
||
* Invocations of initializer methods by the container are not business method invocations. | ||
* Invocations of producer, disposer and observer methods by the container are business method invocations and are intercepted by method interceptors and decorators. | ||
* Invocation of lifecycle callbacks by the container are not business method invocations, but are intercepted by interceptors for lifecycle callbacks. | ||
* Invocations of interceptors and decorator methods during method or lifecycle callback interception are not business method invocations, and therefore no recursive interception occurs. | ||
* Invocations of methods declared by `java.lang.Object` are not business method invocations. | ||
|
||
A method invocation passes through method interceptors and decorators if, and only if, it is a business method invocation. | ||
|
||
Otherwise, the invocation is treated as a normal Java method call and is not intercepted by the container. |