From 03cef59a73eb5f34c4062637b6964ea88704ee0d Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Thu, 13 Jul 2023 13:04:13 +0200 Subject: [PATCH] ArC: improve documentation on supported CDI features and limitations --- docs/src/main/asciidoc/cdi-reference.adoc | 51 +++++++---------------- 1 file changed, 14 insertions(+), 37 deletions(-) diff --git a/docs/src/main/asciidoc/cdi-reference.adoc b/docs/src/main/asciidoc/cdi-reference.adoc index fdca5c07d52bf..f58090e488b6f 100644 --- a/docs/src/main/asciidoc/cdi-reference.adoc +++ b/docs/src/main/asciidoc/cdi-reference.adoc @@ -14,7 +14,7 @@ include::_attributes.adoc[] Quarkus DI solution (also called ArC) is based on the https://jakarta.ee/specifications/cdi/4.0/jakarta-cdi-spec-4.0.html[Jakarta Contexts and Dependency Injection 4.0, window="_blank"] specification. It implements the CDI Lite specification, with selected improvements on top, and passes the CDI Lite TCK. It does not implement CDI Full. -See also <> and <>. +See also <>. TIP: If you're new to CDI then we recommend you to read the xref:cdi.adoc[Introduction to CDI] first. @@ -200,43 +200,20 @@ public class CounterBean { ---- <1> A package-private constructor injection. `@Inject` is optional in this particular case. -[[supported_features]] -== Supported Features - -* Programming model -** Managed beans implemented by a Java class -*** `@PostConstruct` and `@PreDestroy` lifecycle callbacks -** Producer methods and fields, disposers -** Qualifiers -** Alternatives -** Stereotypes -* Dependency injection and lookup -** Field, constructor and initializer/setter injection -** Type-safe resolution -** Programmatic lookup via `jakarta.enterprise.inject.Instance` -** Client proxies -** Injection point metadata -* Scopes and contexts; see xref:cdi.adoc#bean-scope-available[here] for details -* Interceptors -** Business method interceptors: `@AroundInvoke` -** Interceptors for lifecycle event callbacks: `@PostConstruct`, `@PreDestroy`, `@AroundConstruct` +[[supported_features_and_limitations]] +== [[supported_features]][[limitations]] Supported Features and Limitations + +The CDI Lite specification is fully supported. +The following features from CDI Full are also supported: + * Decorators -* Events and observer methods, including asynchronous events and transactional observer methods -* Build Compatible Extensions -* `BeanContainer` - -[[limitations]] -== Limitations - -* `@ConversationScoped` is not supported -* Portable Extensions are not supported -* `BeanManager`: in addition to the `BeanContainer` methods, only the following methods are supported: `getInjectableReference()`, `resolveDecorators()` -* Specialization is not supported -* `beans.xml` descriptor content is ignored, except for the `bean-discovery-mode` attribute -* Passivation and passivating scopes are not supported -* Interceptor methods on superclasses are not implemented yet -* `@Interceptors` is not supported -* Decoration of built-in beans, such as `Event`, is not supported +** Decoration of built-in beans, such as `Event`, is not supported +* `BeanManager` +** In addition to the `BeanContainer` methods, the following methods are supported: `getInjectableReference()`, `resolveDecorators()` +* `@SessionScoped` +** Only with the Undertow extension; see xref:cdi.adoc#bean-scope-available[here] for details + +NOTE: These additional features are not covered by the CDI Lite TCK. [[nonstandard_features]] == Non-standard Features