From 85c41ebb869ccd3d80dc21c3e3d3b36534172e67 Mon Sep 17 00:00:00 2001 From: Eclipse CDI Bot Date: Wed, 18 May 2022 14:49:05 +0000 Subject: [PATCH 001/113] [maven-release-plugin] prepare for next development iteration --- api/pom.xml | 4 ++-- lang-model/pom.xml | 2 +- pom.xml | 4 ++-- spec/pom.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index c7b2ddf8..b39372c5 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.0.1 + 4.0.2-SNAPSHOT jakarta.enterprise.cdi-api @@ -227,7 +227,7 @@ scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git - 4.0.1 + HEAD diff --git a/lang-model/pom.xml b/lang-model/pom.xml index 2afa660b..e657babe 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.0.1 + 4.0.2-SNAPSHOT jakarta.enterprise.lang-model diff --git a/pom.xml b/pom.xml index 14090018..b218fd50 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent pom - 4.0.1 + 4.0.2-SNAPSHOT Parent module for CDI Specification @@ -26,7 +26,7 @@ scm:git:git://github.com/eclipse-ee4j/cdi.git scm:git:git@github.com:eclipse-ee4j/cdi.git https://github.com/eclipse-ee4j/cdi - 4.0.1 + HEAD diff --git a/spec/pom.xml b/spec/pom.xml index 10faa507..42bbe762 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.0.1 + 4.0.2-SNAPSHOT jakarta.enterprise.cdi-spec-doc From 0b7c10abb68e16545b0542f1c74d4710e9e50df3 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 24 May 2022 10:31:54 +0200 Subject: [PATCH 002/113] add BuildServicesResolver.setBuildServices() --- .../compatible/spi/BuildServicesResolver.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java index e5178faa..0b819539 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java @@ -12,12 +12,19 @@ import java.util.Collections; import java.util.Comparator; +import java.util.Objects; import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import java.util.Set; import java.util.TreeSet; -final class BuildServicesResolver { +/** + * An internal helper to resolve {@link BuildServices} implementations. + * This class is public only for integrators and should not be used by applications. + * + * @since 4.0 + */ +public final class BuildServicesResolver { private static final Object lock = new Object(); private static volatile Set discoveredBuildServices; private static volatile BuildServices configuredBuildServices; @@ -48,7 +55,7 @@ private static void discoverFactories() { BuildServices.class, BuildServicesResolver.class.getClassLoader()); if (!loader.iterator().hasNext()) { - throw new IllegalStateException("Unable to locate AnnotationBuilderFactory implementation"); + throw new IllegalStateException("Unable to locate BuildServices implementation"); } try { @@ -61,4 +68,16 @@ private static void discoverFactories() { BuildServicesResolver.discoveredBuildServices = Collections.unmodifiableSet(factories); } + + /** + * This method should not be used by applications. It is only exposed for integrators + * with complex classloading architectures, where service loader lookup doesn't work out of the box. + * With this method, an integrator may manually provide an instance of {@link BuildServices} and + * this class will no longer attempt to look it up using service loader. + * + * @param instance a {@link BuildServices} instance that should be used, must not be {@code null} + */ + public static void setBuildServices(BuildServices instance) { + configuredBuildServices = Objects.requireNonNull(instance, "BuildServices instance must not be null"); + } } From 004f7489622e573add545b245c40c8b665dfa684 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 May 2022 18:56:30 -0500 Subject: [PATCH 003/113] Bump nokogiri from 1.13.4 to 1.13.6 in /docs (#614) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.4 to 1.13.6. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.4...v1.13.6) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 1b6b017b..2cc62c7b 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -229,9 +229,9 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.15.0) multipart-post (2.1.1) - nokogiri (1.13.4-x86_64-darwin) + nokogiri (1.13.6-x86_64-darwin) racc (~> 1.4) - nokogiri (1.13.4-x86_64-linux) + nokogiri (1.13.6-x86_64-linux) racc (~> 1.4) octokit (4.22.0) faraday (>= 0.9) From 82ec5d71872212364a321cd3700d0ecadf9162d2 Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Wed, 25 May 2022 16:49:56 +0200 Subject: [PATCH 004/113] Make sure CDI and BuildServicesResolves both guard against repeated invocations of set method --- .../build/compatible/spi/BuildServicesResolver.java | 12 ++++++++++-- .../main/java/jakarta/enterprise/inject/spi/CDI.java | 10 +++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java index 0b819539..702bf860 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java @@ -12,7 +12,6 @@ import java.util.Collections; import java.util.Comparator; -import java.util.Objects; import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import java.util.Set; @@ -76,8 +75,17 @@ private static void discoverFactories() { * this class will no longer attempt to look it up using service loader. * * @param instance a {@link BuildServices} instance that should be used, must not be {@code null} + * @throws IllegalArgumentException if the provided argument is null + * @throws IllegalStateException if the {@link BuildServices} are already set */ public static void setBuildServices(BuildServices instance) { - configuredBuildServices = Objects.requireNonNull(instance, "BuildServices instance must not be null"); + if (instance == null) { + throw new IllegalArgumentException("BuildServices instance must not be null"); + } + if (configuredBuildServices != null) { + configuredBuildServices = instance; + } else { + throw new IllegalStateException("BuildServices cannot be set repeatedly. Existing BuildServices are " + configuredBuildServices); + } } } diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java index b50f192d..f044a75a 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java @@ -68,7 +68,7 @@ public static CDI current() { /** * * Obtain the {@link CDIProvider} the user set with {@link #setCDIProvider(CDIProvider)} or the last returned - * {@link CDIProvider} if it returns valid CDI container. Otherwise use the serviceloader to retrieve the + * {@link CDIProvider} if it returns valid CDI container. Otherwise, use service loader mechanism to retrieve the * {@link CDIProvider} with the highest priority. * * @return the {@link CDIProvider} set by user or retrieved by serviceloader @@ -118,13 +118,17 @@ private static boolean checkProvider(CDIProvider c) { * * @param provider the provider to use * @throws IllegalStateException if the {@link CDIProvider} is already set + * @throws IllegalArgumentException if the provided argument is null */ public static void setCDIProvider(CDIProvider provider) { - if (provider != null) { + if (provider == null) { + throw new IllegalArgumentException("CDIProvider must not be null"); + } + if (configuredProvider != null) { providerSetManually = true; configuredProvider = provider; } else { - throw new IllegalStateException("CDIProvider must not be null"); + throw new IllegalStateException("CDIProvider cannot be set repeatedly. Existing provider is " + configuredProvider); } } From 9f4412e1473cd4c0990ce6bd8125b414781c0804 Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Wed, 8 Jun 2022 13:54:59 +0200 Subject: [PATCH 005/113] Correct GH Pages link in README (#626) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8987cb24..b6c1ffc7 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # GitHub Pages -The latest news for CDI 4.x can be found in the [GitHub pages](https://eclipse-ee4j.github.io/cdi/) +The latest news for CDI 4.x can be found in the [GitHub pages](https://jakartaee.github.io/cdi/) Sources in GIT ==== -Master contains the work-in-progress on CDI 4.0 specification +Master contains the work-in-progress on CDI.next specification # Legacy Releases Check out the [cdi-spec.org](http://cdi-spec.org) for more info on CDI 2.0 and CDI 1.2 From 74827d2808a4db73d1402206a8e116b5702d031a Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 29 Jun 2022 17:30:29 +0200 Subject: [PATCH 006/113] Clarify ambiguity resolution during dynamic lookup This attempts to clarify the current specification of `Instance.iterator()`, `Instance.stream()` and `Instance.handles()` in presence of dependency ambiguity. My understanding is that this modification is what has always been intended and how current implementations already work. --- .../core/injectionandresolution.asciidoc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc index 9a14e3b3..9905f894 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc @@ -649,12 +649,18 @@ The `get()` method must: The `iterator()` method must: * Identify the set of beans that have the required type and required qualifiers and are eligible for injection into the class into which the parent `Instance` was injected, according to the rules of typesafe resolution, as defined in <>, resolving ambiguities according to <>. -* Return an `Iterator`, that iterates over the set of contextual references for the resulting beans and required type, as defined in <>. +* If typesafe resolution results in an unsatisfied dependency, the set of resulting beans is empty. + If typesafe resolution results in an ambiguous dependency and the set of candidate beans contains at least one alternative, the set of resulting beans contains all beans that were not eliminated during ambiguity resolution. + If typesafe resolution results in an ambiguous dependency and the set of candidate beans contains no alternative, the set of resulting beans contains all candidate beans. +* Return an `Iterator`, that iterates over the set of contextual references for the resulting beans, as defined in <>. The `stream()` method must: * Identify the set of beans that have the required type and required qualifiers and are eligible for injection into the class into which the parent `Instance` was injected, according to the rules of typesafe resolution, as defined in <>, resolving ambiguities according to <>. -* Return a `Stream`, that can stream over the set of contextual references for the resulting beans and required type, as defined in <>. +* If typesafe resolution results in an unsatisfied dependency, the set of resulting beans is empty. + If typesafe resolution results in an ambiguous dependency and the set of candidate beans contains at least one alternative, the set of resulting beans contains all beans that were not eliminated during ambiguity resolution. + If typesafe resolution results in an ambiguous dependency and the set of candidate beans contains no alternative, the set of resulting beans contains all candidate beans. +* Return a `Stream`, that can stream over the set of contextual references for the resulting beans, as defined in <>. The methods `isUnsatisfied()`, `isAmbiguous()` and `isResolvable()` must: @@ -671,12 +677,12 @@ An `UnsupportedOperationException` is thrown if the active context object for th The `getHandle()` method must: * Return an initialized contextual reference `Handle` for a bean that has the required type and qualifiers and is eligible for injection. The contextual reference must be resolved lazily, i.e. when first needed. <> is described in a separate paragraph. -* Throw `UnsatisfiedResolutionException` if there is no bean with given type and qualifiers -* Throw `AmbiguousResolutionException` if there is more than one bean given type and qualifiers +* Throw `UnsatisfiedResolutionException` if there is no bean with given type and qualifiers. +* Throw `AmbiguousResolutionException` if there is more than one bean given type and qualifiers. The `handles()` method must: -* Allow iterating over contextual reference handles for all beans that have the required type and required qualifiers and are eligible for injection. +* Allow iterating over contextual reference handles for all beans that would be produced by the `iterator()` (or `stream()`) method. * Return stateless `Iterable`. Therefore, each `Iterable#iterator()` produces a new set of handles. The `handlesStream()` is a `Stream` equivalent of the aforementioned `handles()` method. From 8e6942892d25a5bdaf53cef3681e8a1b5e8e4e57 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Mon, 19 Sep 2022 15:13:58 +0200 Subject: [PATCH 007/113] Improve section numbering CDI specification up to version 3.0 used to have the sections numbered in a friendly way: 1. Architecture 2. Concepts 3. Programming model And so on. With CDI 4.0 and the split to Lite and Full, sections were renumbered in a more ugly fashion: 1. Architecture 2. CDI Lite 2.1. Concepts 2.2. Programming model 3. CDI Full Note that this numbering is different from the TCK Audit tool expectations and hence the TCK Audit reports are incorrect. This commit restores the original numbering, which is more user-friendly and also conforms to the expectations of the TCK Audit tool. --- spec/src/main/asciidoc/cdi-spec.asciidoc | 14 +++++--------- spec/src/main/asciidoc/core/core_structure.adoc | 10 ++++++++++ .../main/asciidoc/core/definition_full.asciidoc | 5 +++-- spec/src/main/asciidoc/preface.asciidoc | 6 +++--- 4 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 spec/src/main/asciidoc/core/core_structure.adoc diff --git a/spec/src/main/asciidoc/cdi-spec.asciidoc b/spec/src/main/asciidoc/cdi-spec.asciidoc index 76724bc3..aaecdf30 100644 --- a/spec/src/main/asciidoc/cdi-spec.asciidoc +++ b/spec/src/main/asciidoc/cdi-spec.asciidoc @@ -33,9 +33,10 @@ include::architecture.asciidoc[] [[part_1]] = Part I - Core CDI -== {cdi_lite} +include::core/core_structure.adoc[] -:leveloffset: +1 +[[part_1a]] += Part I.A - {cdi_lite} include::core/definition.asciidoc[] @@ -59,11 +60,8 @@ include::core/spi_lite.asciidoc[] include::core/packagingdeployment.asciidoc[] -:leveloffset: -1 - -== {cdi_full} - -:leveloffset: +1 +[[part_1b]] += Part I.B - {cdi_full} include::core/definition_full.asciidoc[] @@ -85,8 +83,6 @@ include::core/spi_full.asciidoc[] include::core/packagingdeployment_full.asciidoc[] -:leveloffset: -1 - [[part_2]] = Part II - CDI in Java SE diff --git a/spec/src/main/asciidoc/core/core_structure.adoc b/spec/src/main/asciidoc/core/core_structure.adoc new file mode 100644 index 00000000..a6381b12 --- /dev/null +++ b/spec/src/main/asciidoc/core/core_structure.adoc @@ -0,0 +1,10 @@ +:numbered!: + +== Structure + +The Core CDI specification has two subparts: + +* {cdi_lite} specification which contains a subset of CDI features and which can be implemented in more restricted environments; this is part of the Jakarta EE Core Profile; +* {cdi_full} specification that builds on top of Lite and adds all advanced CDI features; this is the classic CDI platform that is part of the Jakarta EE Web Profile and Jakarta EE Platform. + +:numbered: diff --git a/spec/src/main/asciidoc/core/definition_full.asciidoc b/spec/src/main/asciidoc/core/definition_full.asciidoc index 486e6610..98dcb010 100644 --- a/spec/src/main/asciidoc/core/definition_full.asciidoc +++ b/spec/src/main/asciidoc/core/definition_full.asciidoc @@ -1,7 +1,8 @@ -[[concepts_full]] - +[partintro] +-- {cdi_full} contains all the functionality defined in {cdi_lite} and adds some additional features such as specialization, decorators, session scope or conversation scope. Some of these concepts were briefly mentioned in the previous {cdi_lite} chapter and this section of specification defines them in depth. +-- [[scopes_full]] diff --git a/spec/src/main/asciidoc/preface.asciidoc b/spec/src/main/asciidoc/preface.asciidoc index eeee2f9a..d14a4b77 100644 --- a/spec/src/main/asciidoc/preface.asciidoc +++ b/spec/src/main/asciidoc/preface.asciidoc @@ -15,9 +15,9 @@ include::license-{license}.asciidoc[] This document is organized in 4 parts: * An introduction (this part), which is not part of the specification but introduces CDI concepts and gives examples. -* Core CDI specification: <>. This part has two sections: -** {cdi_lite} specification which contains a subset of CDI features and which can be implemented in more restricted environments; -** {cdi_full} specification that builds on top of Lite and adds all advanced CDI features; this is the standard Jakarta EE CDI platform. +* Core CDI specification: <>. This part has two subparts: +** {cdi_lite} specification: <>; +** {cdi_full} specification: <>. * Specific CDI features for Java SE: <>. * Specific CDI features for Jakarta EE: <>. From 314049cf988095e15e7c5ecd4d9d7928b7971c3e Mon Sep 17 00:00:00 2001 From: Miguel Alcantara Date: Tue, 3 Jan 2023 04:30:37 -0500 Subject: [PATCH 008/113] Recommend known-good Ruby version and fix localhost URL --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index e09b26d6..bfe2eea4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,7 +7,7 @@ These instructions will get you a copy of the eclipse-ee4j.github.io/cdi/ websit ### Installation [Jekyll static site generator docs](https://jekyllrb.com/docs/). -1. Install a full [Ruby development environment](https://jekyllrb.com/docs/installation/) +1. Install a full [Ruby development environment](https://jekyllrb.com/docs/installation/) (Version 2.7 is recommended, version 3.x seems to be incompatible) 2. Install [bundler](https://jekyllrb.com/docs/ruby-101/#bundler) [gems](https://jekyllrb.com/docs/ruby-101/#gems) gem install bundler @@ -28,7 +28,7 @@ These instructions will get you a copy of the eclipse-ee4j.github.io/cdi/ websit bundle exec jekyll serve -7. Now browse to http://localhost:4000 +7. Now browse to http://localhost:4000/cdi/ > If you encounter any unexpected errors during the above, please refer to the [troubleshooting](https://jekyllrb.com/docs/troubleshooting/#configuration-problems) page or the [requirements](https://jekyllrb.com/docs/installation/#requirements) page, as you might be missing development headers or other prerequisites. From 07a7e6371c3e15a1c804c99c950496261d37854c Mon Sep 17 00:00:00 2001 From: Wayne Beaton Date: Tue, 21 Feb 2023 14:16:52 -0500 Subject: [PATCH 009/113] Use a vendor neutral link to the license text Signed-off-by: Wayne Beaton --- lang-model/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lang-model/pom.xml b/lang-model/pom.xml index e657babe..a7764cf1 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -16,7 +16,7 @@ Apache License 2.0 - https://repository.jboss.org/licenses/apache-2.0.txt + https://apache.org/licenses/LICENSE-2.0.txt repo diff --git a/pom.xml b/pom.xml index b218fd50..2c09af90 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ Apache License 2.0 - https://repository.jboss.org/licenses/apache-2.0.txt + https://apache.org/licenses/LICENSE-2.0.txt repo From 83ea8d2c08028e4c3987420f60b02730dcdc1cea Mon Sep 17 00:00:00 2001 From: Wayne Beaton Date: Tue, 28 Feb 2023 15:16:25 -0500 Subject: [PATCH 010/113] Remove vendor notices (#654) Signed-off-by: Wayne Beaton --- api/src/main/java/jakarta/decorator/Decorator.java | 1 - api/src/main/java/jakarta/decorator/Delegate.java | 1 - api/src/main/java/jakarta/decorator/package-info.java | 1 - .../main/java/jakarta/enterprise/context/ApplicationScoped.java | 1 - .../main/java/jakarta/enterprise/context/BeforeDestroyed.java | 1 - .../jakarta/enterprise/context/BusyConversationException.java | 1 - .../main/java/jakarta/enterprise/context/ContextException.java | 1 - .../jakarta/enterprise/context/ContextNotActiveException.java | 1 - api/src/main/java/jakarta/enterprise/context/Conversation.java | 1 - .../main/java/jakarta/enterprise/context/ConversationScoped.java | 1 - api/src/main/java/jakarta/enterprise/context/Dependent.java | 1 - api/src/main/java/jakarta/enterprise/context/Destroyed.java | 1 - api/src/main/java/jakarta/enterprise/context/Initialized.java | 1 - .../enterprise/context/NonexistentConversationException.java | 1 - api/src/main/java/jakarta/enterprise/context/NormalScope.java | 1 - api/src/main/java/jakarta/enterprise/context/RequestScoped.java | 1 - api/src/main/java/jakarta/enterprise/context/SessionScoped.java | 1 - .../enterprise/context/control/ActivateRequestContext.java | 1 - .../enterprise/context/control/RequestContextController.java | 1 - api/src/main/java/jakarta/enterprise/context/package-info.java | 1 - .../java/jakarta/enterprise/context/spi/AlterableContext.java | 1 - api/src/main/java/jakarta/enterprise/context/spi/Context.java | 1 - api/src/main/java/jakarta/enterprise/context/spi/Contextual.java | 1 - .../java/jakarta/enterprise/context/spi/CreationalContext.java | 1 - .../main/java/jakarta/enterprise/context/spi/package-info.java | 1 - api/src/main/java/jakarta/enterprise/event/Event.java | 1 - .../jakarta/enterprise/event/ImmutableNotificationOptions.java | 1 - .../main/java/jakarta/enterprise/event/NotificationOptions.java | 1 - .../main/java/jakarta/enterprise/event/ObserverException.java | 1 - api/src/main/java/jakarta/enterprise/event/Observes.java | 1 - api/src/main/java/jakarta/enterprise/event/ObservesAsync.java | 1 - api/src/main/java/jakarta/enterprise/event/Reception.java | 1 - api/src/main/java/jakarta/enterprise/event/TransactionPhase.java | 1 - api/src/main/java/jakarta/enterprise/event/package-info.java | 1 - api/src/main/java/jakarta/enterprise/inject/Alternative.java | 1 - .../jakarta/enterprise/inject/AmbiguousResolutionException.java | 1 - api/src/main/java/jakarta/enterprise/inject/Any.java | 1 - .../main/java/jakarta/enterprise/inject/CreationException.java | 1 - api/src/main/java/jakarta/enterprise/inject/Decorated.java | 1 - api/src/main/java/jakarta/enterprise/inject/Default.java | 1 - api/src/main/java/jakarta/enterprise/inject/Disposes.java | 1 - .../java/jakarta/enterprise/inject/IllegalProductException.java | 1 - .../main/java/jakarta/enterprise/inject/InjectionException.java | 1 - api/src/main/java/jakarta/enterprise/inject/Instance.java | 1 - api/src/main/java/jakarta/enterprise/inject/Intercepted.java | 1 - api/src/main/java/jakarta/enterprise/inject/Model.java | 1 - api/src/main/java/jakarta/enterprise/inject/Produces.java | 1 - .../main/java/jakarta/enterprise/inject/ResolutionException.java | 1 - api/src/main/java/jakarta/enterprise/inject/Specializes.java | 1 - api/src/main/java/jakarta/enterprise/inject/Stereotype.java | 1 - .../main/java/jakarta/enterprise/inject/TransientReference.java | 1 - api/src/main/java/jakarta/enterprise/inject/Typed.java | 1 - .../enterprise/inject/UnproxyableResolutionException.java | 1 - .../enterprise/inject/UnsatisfiedResolutionException.java | 1 - api/src/main/java/jakarta/enterprise/inject/Vetoed.java | 1 - .../java/jakarta/enterprise/inject/literal/InjectLiteral.java | 1 - .../java/jakarta/enterprise/inject/literal/NamedLiteral.java | 1 - .../java/jakarta/enterprise/inject/literal/QualifierLiteral.java | 1 - .../java/jakarta/enterprise/inject/literal/SingletonLiteral.java | 1 - api/src/main/java/jakarta/enterprise/inject/se/SeContainer.java | 1 - .../jakarta/enterprise/inject/se/SeContainerInitializer.java | 1 - .../java/jakarta/enterprise/inject/spi/AfterBeanDiscovery.java | 1 - .../jakarta/enterprise/inject/spi/AfterDeploymentValidation.java | 1 - .../java/jakarta/enterprise/inject/spi/AfterTypeDiscovery.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Annotated.java | 1 - .../java/jakarta/enterprise/inject/spi/AnnotatedCallable.java | 1 - .../java/jakarta/enterprise/inject/spi/AnnotatedConstructor.java | 1 - .../main/java/jakarta/enterprise/inject/spi/AnnotatedField.java | 1 - .../main/java/jakarta/enterprise/inject/spi/AnnotatedMember.java | 1 - .../main/java/jakarta/enterprise/inject/spi/AnnotatedMethod.java | 1 - .../java/jakarta/enterprise/inject/spi/AnnotatedParameter.java | 1 - .../main/java/jakarta/enterprise/inject/spi/AnnotatedType.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Bean.java | 1 - .../main/java/jakarta/enterprise/inject/spi/BeanAttributes.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java | 1 - .../java/jakarta/enterprise/inject/spi/BeforeBeanDiscovery.java | 1 - .../main/java/jakarta/enterprise/inject/spi/BeforeShutdown.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/CDI.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/CDIProvider.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Decorator.java | 1 - .../java/jakarta/enterprise/inject/spi/DefinitionException.java | 1 - .../java/jakarta/enterprise/inject/spi/DeploymentException.java | 1 - .../main/java/jakarta/enterprise/inject/spi/EventContext.java | 1 - .../main/java/jakarta/enterprise/inject/spi/EventMetadata.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Extension.java | 1 - .../main/java/jakarta/enterprise/inject/spi/InjectionPoint.java | 1 - .../main/java/jakarta/enterprise/inject/spi/InjectionTarget.java | 1 - .../jakarta/enterprise/inject/spi/InjectionTargetFactory.java | 1 - .../java/jakarta/enterprise/inject/spi/InterceptionFactory.java | 1 - .../java/jakarta/enterprise/inject/spi/InterceptionType.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Interceptor.java | 1 - .../main/java/jakarta/enterprise/inject/spi/ObserverMethod.java | 1 - .../java/jakarta/enterprise/inject/spi/PassivationCapable.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Prioritized.java | 1 - .../java/jakarta/enterprise/inject/spi/ProcessAnnotatedType.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/ProcessBean.java | 1 - .../jakarta/enterprise/inject/spi/ProcessBeanAttributes.java | 1 - .../jakarta/enterprise/inject/spi/ProcessInjectionPoint.java | 1 - .../jakarta/enterprise/inject/spi/ProcessInjectionTarget.java | 1 - .../java/jakarta/enterprise/inject/spi/ProcessManagedBean.java | 1 - .../jakarta/enterprise/inject/spi/ProcessObserverMethod.java | 1 - .../main/java/jakarta/enterprise/inject/spi/ProcessProducer.java | 1 - .../java/jakarta/enterprise/inject/spi/ProcessProducerField.java | 1 - .../jakarta/enterprise/inject/spi/ProcessProducerMethod.java | 1 - .../java/jakarta/enterprise/inject/spi/ProcessSessionBean.java | 1 - .../enterprise/inject/spi/ProcessSyntheticAnnotatedType.java | 1 - .../java/jakarta/enterprise/inject/spi/ProcessSyntheticBean.java | 1 - .../enterprise/inject/spi/ProcessSyntheticObserverMethod.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Producer.java | 1 - .../main/java/jakarta/enterprise/inject/spi/ProducerFactory.java | 1 - .../main/java/jakarta/enterprise/inject/spi/SecurityActions.java | 1 - .../main/java/jakarta/enterprise/inject/spi/SessionBeanType.java | 1 - api/src/main/java/jakarta/enterprise/inject/spi/Unmanaged.java | 1 - .../main/java/jakarta/enterprise/inject/spi/WithAnnotations.java | 1 - .../spi/configurator/AnnotatedConstructorConfigurator.java | 1 - .../inject/spi/configurator/AnnotatedFieldConfigurator.java | 1 - .../inject/spi/configurator/AnnotatedMethodConfigurator.java | 1 - .../inject/spi/configurator/AnnotatedParameterConfigurator.java | 1 - .../inject/spi/configurator/AnnotatedTypeConfigurator.java | 1 - .../inject/spi/configurator/BeanAttributesConfigurator.java | 1 - .../enterprise/inject/spi/configurator/BeanConfigurator.java | 1 - .../inject/spi/configurator/InjectionPointConfigurator.java | 1 - .../inject/spi/configurator/ObserverMethodConfigurator.java | 1 - .../enterprise/inject/spi/configurator/ProducerConfigurator.java | 1 - .../main/java/jakarta/enterprise/inject/spi/package-info.java | 1 - api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java | 1 - api/src/main/java/jakarta/enterprise/util/Nonbinding.java | 1 - api/src/main/java/jakarta/enterprise/util/SecurityActions.java | 1 - api/src/main/java/jakarta/enterprise/util/TypeLiteral.java | 1 - api/src/main/java/jakarta/enterprise/util/package-info.java | 1 - api/src/main/resources/beans_2_0.xsd | 1 - api/src/main/resources/beans_3_0.xsd | 1 - api/src/main/resources/beans_4_0.xsd | 1 - api/src/test/java/org/jboss/cdi/api/test/CDITest.java | 1 - .../test/java/org/jboss/cdi/api/test/ClosableCDIProvider.java | 1 - api/src/test/java/org/jboss/cdi/api/test/DummyCDIProvider.java | 1 - api/src/test/java/org/jboss/cdi/api/test/DummyCDIProvider2.java | 1 - .../java/org/jboss/cdi/api/test/DummyCDIProviderWithNullCDI.java | 1 - .../org/jboss/cdi/api/test/annotated/AbstractAnnotatedTest.java | 1 - .../jboss/cdi/api/test/annotated/AnnotatedCallableHolder.java | 1 - .../jboss/cdi/api/test/annotated/AnnotatedConstructorHolder.java | 1 - .../jboss/cdi/api/test/annotated/AnnotatedConstructorTest.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedFieldHolder.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedFieldTest.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedMemberHolder.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedMethodHolder.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedMethodTest.java | 1 - .../jboss/cdi/api/test/annotated/AnnotatedParameterHolder.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedParameterTest.java | 1 - .../org/jboss/cdi/api/test/annotated/AnnotatedTypeHolder.java | 1 - .../java/org/jboss/cdi/api/test/annotated/AnnotatedTypeTest.java | 1 - .../test/java/org/jboss/cdi/api/test/annotated/RepeatBean.java | 1 - api/src/test/java/org/jboss/cdi/api/test/annotated/Repeater.java | 1 - .../test/java/org/jboss/cdi/api/test/annotated/Repeaters.java | 1 - .../cdi/api/test/annotated/parameter/AnnotatedParameterTest.java | 1 - .../org/jboss/cdi/api/test/privileged/CDIPrivilegedTest.java | 1 - .../java/org/jboss/cdi/api/test/privileged/FakeCDIProvider.java | 1 - .../api/test/privileged/annotation/AnnotationLiteralTest.java | 1 - .../jboss/cdi/api/test/privileged/annotation/MyAnnotation.java | 1 - .../cdi/api/test/privileged/annotation/MyAnnotationLiteral.java | 1 - .../org/jboss/cdi/api/test/se/DummySeContainerInitializer.java | 1 - .../org/jboss/cdi/api/test/se/DummySeContainerInitializer2.java | 1 - .../org/jboss/cdi/api/test/se/SeContainerInitializerTest.java | 1 - 163 files changed, 163 deletions(-) diff --git a/api/src/main/java/jakarta/decorator/Decorator.java b/api/src/main/java/jakarta/decorator/Decorator.java index afa87ad5..3b3578ac 100644 --- a/api/src/main/java/jakarta/decorator/Decorator.java +++ b/api/src/main/java/jakarta/decorator/Decorator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/decorator/Delegate.java b/api/src/main/java/jakarta/decorator/Delegate.java index e6cc48c8..23e331a7 100644 --- a/api/src/main/java/jakarta/decorator/Delegate.java +++ b/api/src/main/java/jakarta/decorator/Delegate.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/decorator/package-info.java b/api/src/main/java/jakarta/decorator/package-info.java index 5b1d5456..94bdde62 100644 --- a/api/src/main/java/jakarta/decorator/package-info.java +++ b/api/src/main/java/jakarta/decorator/package-info.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java b/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java index df4b0a0b..a9ede12e 100644 --- a/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java +++ b/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java b/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java index 6d1175a1..8390ecd0 100644 --- a/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java +++ b/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java b/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java index 21f3b0bb..32611730 100644 --- a/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java +++ b/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/ContextException.java b/api/src/main/java/jakarta/enterprise/context/ContextException.java index 4c371893..220a1727 100644 --- a/api/src/main/java/jakarta/enterprise/context/ContextException.java +++ b/api/src/main/java/jakarta/enterprise/context/ContextException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java b/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java index 05426576..8ef81400 100644 --- a/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java +++ b/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/Conversation.java b/api/src/main/java/jakarta/enterprise/context/Conversation.java index 4bd3fccf..4d5b7ebf 100644 --- a/api/src/main/java/jakarta/enterprise/context/Conversation.java +++ b/api/src/main/java/jakarta/enterprise/context/Conversation.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java b/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java index 8eaaa262..a3c30e2e 100644 --- a/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java +++ b/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/Dependent.java b/api/src/main/java/jakarta/enterprise/context/Dependent.java index 2ca83d33..02583b17 100644 --- a/api/src/main/java/jakarta/enterprise/context/Dependent.java +++ b/api/src/main/java/jakarta/enterprise/context/Dependent.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/Destroyed.java b/api/src/main/java/jakarta/enterprise/context/Destroyed.java index 5596e6c2..760c878c 100644 --- a/api/src/main/java/jakarta/enterprise/context/Destroyed.java +++ b/api/src/main/java/jakarta/enterprise/context/Destroyed.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/Initialized.java b/api/src/main/java/jakarta/enterprise/context/Initialized.java index fbd89899..49b2035e 100644 --- a/api/src/main/java/jakarta/enterprise/context/Initialized.java +++ b/api/src/main/java/jakarta/enterprise/context/Initialized.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/NonexistentConversationException.java b/api/src/main/java/jakarta/enterprise/context/NonexistentConversationException.java index d5049638..9c4b7c14 100644 --- a/api/src/main/java/jakarta/enterprise/context/NonexistentConversationException.java +++ b/api/src/main/java/jakarta/enterprise/context/NonexistentConversationException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/NormalScope.java b/api/src/main/java/jakarta/enterprise/context/NormalScope.java index b684c790..fae6ceb6 100644 --- a/api/src/main/java/jakarta/enterprise/context/NormalScope.java +++ b/api/src/main/java/jakarta/enterprise/context/NormalScope.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/RequestScoped.java b/api/src/main/java/jakarta/enterprise/context/RequestScoped.java index 9c49307e..c6af80f8 100644 --- a/api/src/main/java/jakarta/enterprise/context/RequestScoped.java +++ b/api/src/main/java/jakarta/enterprise/context/RequestScoped.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/SessionScoped.java b/api/src/main/java/jakarta/enterprise/context/SessionScoped.java index ccf3acff..f1830992 100644 --- a/api/src/main/java/jakarta/enterprise/context/SessionScoped.java +++ b/api/src/main/java/jakarta/enterprise/context/SessionScoped.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/control/ActivateRequestContext.java b/api/src/main/java/jakarta/enterprise/context/control/ActivateRequestContext.java index cbd9bce5..4227019d 100644 --- a/api/src/main/java/jakarta/enterprise/context/control/ActivateRequestContext.java +++ b/api/src/main/java/jakarta/enterprise/context/control/ActivateRequestContext.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/control/RequestContextController.java b/api/src/main/java/jakarta/enterprise/context/control/RequestContextController.java index e142f0e6..da269fce 100644 --- a/api/src/main/java/jakarta/enterprise/context/control/RequestContextController.java +++ b/api/src/main/java/jakarta/enterprise/context/control/RequestContextController.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/package-info.java b/api/src/main/java/jakarta/enterprise/context/package-info.java index 8ec91454..b2e2232d 100644 --- a/api/src/main/java/jakarta/enterprise/context/package-info.java +++ b/api/src/main/java/jakarta/enterprise/context/package-info.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/spi/AlterableContext.java b/api/src/main/java/jakarta/enterprise/context/spi/AlterableContext.java index 4089598b..02e16257 100644 --- a/api/src/main/java/jakarta/enterprise/context/spi/AlterableContext.java +++ b/api/src/main/java/jakarta/enterprise/context/spi/AlterableContext.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/spi/Context.java b/api/src/main/java/jakarta/enterprise/context/spi/Context.java index 93a2adb2..5e996d8c 100644 --- a/api/src/main/java/jakarta/enterprise/context/spi/Context.java +++ b/api/src/main/java/jakarta/enterprise/context/spi/Context.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/spi/Contextual.java b/api/src/main/java/jakarta/enterprise/context/spi/Contextual.java index fddb1513..96eda883 100644 --- a/api/src/main/java/jakarta/enterprise/context/spi/Contextual.java +++ b/api/src/main/java/jakarta/enterprise/context/spi/Contextual.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/spi/CreationalContext.java b/api/src/main/java/jakarta/enterprise/context/spi/CreationalContext.java index 3ef46399..9b73ae78 100644 --- a/api/src/main/java/jakarta/enterprise/context/spi/CreationalContext.java +++ b/api/src/main/java/jakarta/enterprise/context/spi/CreationalContext.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/context/spi/package-info.java b/api/src/main/java/jakarta/enterprise/context/spi/package-info.java index 5d6f313e..4d385b66 100644 --- a/api/src/main/java/jakarta/enterprise/context/spi/package-info.java +++ b/api/src/main/java/jakarta/enterprise/context/spi/package-info.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/Event.java b/api/src/main/java/jakarta/enterprise/event/Event.java index bdad8b63..a5abbe72 100644 --- a/api/src/main/java/jakarta/enterprise/event/Event.java +++ b/api/src/main/java/jakarta/enterprise/event/Event.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/ImmutableNotificationOptions.java b/api/src/main/java/jakarta/enterprise/event/ImmutableNotificationOptions.java index 54b91f3f..4e23a10c 100644 --- a/api/src/main/java/jakarta/enterprise/event/ImmutableNotificationOptions.java +++ b/api/src/main/java/jakarta/enterprise/event/ImmutableNotificationOptions.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/NotificationOptions.java b/api/src/main/java/jakarta/enterprise/event/NotificationOptions.java index 769b96dd..8621779d 100644 --- a/api/src/main/java/jakarta/enterprise/event/NotificationOptions.java +++ b/api/src/main/java/jakarta/enterprise/event/NotificationOptions.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/ObserverException.java b/api/src/main/java/jakarta/enterprise/event/ObserverException.java index 34f5646b..a491ba4c 100644 --- a/api/src/main/java/jakarta/enterprise/event/ObserverException.java +++ b/api/src/main/java/jakarta/enterprise/event/ObserverException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/Observes.java b/api/src/main/java/jakarta/enterprise/event/Observes.java index d24bf030..20175f55 100644 --- a/api/src/main/java/jakarta/enterprise/event/Observes.java +++ b/api/src/main/java/jakarta/enterprise/event/Observes.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/ObservesAsync.java b/api/src/main/java/jakarta/enterprise/event/ObservesAsync.java index a3250564..00a7e6e3 100644 --- a/api/src/main/java/jakarta/enterprise/event/ObservesAsync.java +++ b/api/src/main/java/jakarta/enterprise/event/ObservesAsync.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/Reception.java b/api/src/main/java/jakarta/enterprise/event/Reception.java index 5ae79b68..7a277406 100644 --- a/api/src/main/java/jakarta/enterprise/event/Reception.java +++ b/api/src/main/java/jakarta/enterprise/event/Reception.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/TransactionPhase.java b/api/src/main/java/jakarta/enterprise/event/TransactionPhase.java index a9cc05ac..c6ca1c81 100644 --- a/api/src/main/java/jakarta/enterprise/event/TransactionPhase.java +++ b/api/src/main/java/jakarta/enterprise/event/TransactionPhase.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/event/package-info.java b/api/src/main/java/jakarta/enterprise/event/package-info.java index 316e4850..d3e87e0a 100644 --- a/api/src/main/java/jakarta/enterprise/event/package-info.java +++ b/api/src/main/java/jakarta/enterprise/event/package-info.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Alternative.java b/api/src/main/java/jakarta/enterprise/inject/Alternative.java index ecbe6a81..ff58a5b6 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Alternative.java +++ b/api/src/main/java/jakarta/enterprise/inject/Alternative.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/AmbiguousResolutionException.java b/api/src/main/java/jakarta/enterprise/inject/AmbiguousResolutionException.java index 30a7c0e3..50fc54e3 100644 --- a/api/src/main/java/jakarta/enterprise/inject/AmbiguousResolutionException.java +++ b/api/src/main/java/jakarta/enterprise/inject/AmbiguousResolutionException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Any.java b/api/src/main/java/jakarta/enterprise/inject/Any.java index 887e9727..8e12438d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Any.java +++ b/api/src/main/java/jakarta/enterprise/inject/Any.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/CreationException.java b/api/src/main/java/jakarta/enterprise/inject/CreationException.java index 0cb3af90..f1aab30f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/CreationException.java +++ b/api/src/main/java/jakarta/enterprise/inject/CreationException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Decorated.java b/api/src/main/java/jakarta/enterprise/inject/Decorated.java index 34c4d86e..0eb9cfee 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Decorated.java +++ b/api/src/main/java/jakarta/enterprise/inject/Decorated.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Default.java b/api/src/main/java/jakarta/enterprise/inject/Default.java index f1e0daee..3677a7c0 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Default.java +++ b/api/src/main/java/jakarta/enterprise/inject/Default.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Disposes.java b/api/src/main/java/jakarta/enterprise/inject/Disposes.java index 326b1882..72690300 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Disposes.java +++ b/api/src/main/java/jakarta/enterprise/inject/Disposes.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/IllegalProductException.java b/api/src/main/java/jakarta/enterprise/inject/IllegalProductException.java index 474a8212..d58c2311 100644 --- a/api/src/main/java/jakarta/enterprise/inject/IllegalProductException.java +++ b/api/src/main/java/jakarta/enterprise/inject/IllegalProductException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/InjectionException.java b/api/src/main/java/jakarta/enterprise/inject/InjectionException.java index 2ce6e534..16de0936 100644 --- a/api/src/main/java/jakarta/enterprise/inject/InjectionException.java +++ b/api/src/main/java/jakarta/enterprise/inject/InjectionException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Instance.java b/api/src/main/java/jakarta/enterprise/inject/Instance.java index 7739d83d..a29746ca 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Instance.java +++ b/api/src/main/java/jakarta/enterprise/inject/Instance.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Intercepted.java b/api/src/main/java/jakarta/enterprise/inject/Intercepted.java index 41b411a9..17c90e32 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Intercepted.java +++ b/api/src/main/java/jakarta/enterprise/inject/Intercepted.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Model.java b/api/src/main/java/jakarta/enterprise/inject/Model.java index 89007c85..fcd74c57 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Model.java +++ b/api/src/main/java/jakarta/enterprise/inject/Model.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Produces.java b/api/src/main/java/jakarta/enterprise/inject/Produces.java index 9bfbdce4..666c84d5 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Produces.java +++ b/api/src/main/java/jakarta/enterprise/inject/Produces.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/ResolutionException.java b/api/src/main/java/jakarta/enterprise/inject/ResolutionException.java index 9ae5fe54..8755260d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/ResolutionException.java +++ b/api/src/main/java/jakarta/enterprise/inject/ResolutionException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Specializes.java b/api/src/main/java/jakarta/enterprise/inject/Specializes.java index 8b58ab00..e6473537 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Specializes.java +++ b/api/src/main/java/jakarta/enterprise/inject/Specializes.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Stereotype.java b/api/src/main/java/jakarta/enterprise/inject/Stereotype.java index 80307733..49b26644 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Stereotype.java +++ b/api/src/main/java/jakarta/enterprise/inject/Stereotype.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/TransientReference.java b/api/src/main/java/jakarta/enterprise/inject/TransientReference.java index cc5213b9..aaf93bfc 100644 --- a/api/src/main/java/jakarta/enterprise/inject/TransientReference.java +++ b/api/src/main/java/jakarta/enterprise/inject/TransientReference.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Typed.java b/api/src/main/java/jakarta/enterprise/inject/Typed.java index d7241d19..95174bcc 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Typed.java +++ b/api/src/main/java/jakarta/enterprise/inject/Typed.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/UnproxyableResolutionException.java b/api/src/main/java/jakarta/enterprise/inject/UnproxyableResolutionException.java index 7ffb0f1d..d7dcac23 100644 --- a/api/src/main/java/jakarta/enterprise/inject/UnproxyableResolutionException.java +++ b/api/src/main/java/jakarta/enterprise/inject/UnproxyableResolutionException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/UnsatisfiedResolutionException.java b/api/src/main/java/jakarta/enterprise/inject/UnsatisfiedResolutionException.java index b32a0964..e9a067b6 100644 --- a/api/src/main/java/jakarta/enterprise/inject/UnsatisfiedResolutionException.java +++ b/api/src/main/java/jakarta/enterprise/inject/UnsatisfiedResolutionException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/Vetoed.java b/api/src/main/java/jakarta/enterprise/inject/Vetoed.java index 15677518..a4a4de0d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/Vetoed.java +++ b/api/src/main/java/jakarta/enterprise/inject/Vetoed.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/literal/InjectLiteral.java b/api/src/main/java/jakarta/enterprise/inject/literal/InjectLiteral.java index 8667d894..26e4b75a 100644 --- a/api/src/main/java/jakarta/enterprise/inject/literal/InjectLiteral.java +++ b/api/src/main/java/jakarta/enterprise/inject/literal/InjectLiteral.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2008, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/literal/NamedLiteral.java b/api/src/main/java/jakarta/enterprise/inject/literal/NamedLiteral.java index f622f63b..57b269d2 100644 --- a/api/src/main/java/jakarta/enterprise/inject/literal/NamedLiteral.java +++ b/api/src/main/java/jakarta/enterprise/inject/literal/NamedLiteral.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2008, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/literal/QualifierLiteral.java b/api/src/main/java/jakarta/enterprise/inject/literal/QualifierLiteral.java index 30cffd7e..7989c53c 100644 --- a/api/src/main/java/jakarta/enterprise/inject/literal/QualifierLiteral.java +++ b/api/src/main/java/jakarta/enterprise/inject/literal/QualifierLiteral.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2008, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/literal/SingletonLiteral.java b/api/src/main/java/jakarta/enterprise/inject/literal/SingletonLiteral.java index 83ab126a..b3239fb5 100644 --- a/api/src/main/java/jakarta/enterprise/inject/literal/SingletonLiteral.java +++ b/api/src/main/java/jakarta/enterprise/inject/literal/SingletonLiteral.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2008, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/se/SeContainer.java b/api/src/main/java/jakarta/enterprise/inject/se/SeContainer.java index 9c003aa2..faf9f70d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/se/SeContainer.java +++ b/api/src/main/java/jakarta/enterprise/inject/se/SeContainer.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/se/SeContainerInitializer.java b/api/src/main/java/jakarta/enterprise/inject/se/SeContainerInitializer.java index 789e29b1..2765cb49 100644 --- a/api/src/main/java/jakarta/enterprise/inject/se/SeContainerInitializer.java +++ b/api/src/main/java/jakarta/enterprise/inject/se/SeContainerInitializer.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AfterBeanDiscovery.java b/api/src/main/java/jakarta/enterprise/inject/spi/AfterBeanDiscovery.java index a0c166c0..c128669f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AfterBeanDiscovery.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AfterBeanDiscovery.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AfterDeploymentValidation.java b/api/src/main/java/jakarta/enterprise/inject/spi/AfterDeploymentValidation.java index 16c2bcb2..c877457e 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AfterDeploymentValidation.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AfterDeploymentValidation.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AfterTypeDiscovery.java b/api/src/main/java/jakarta/enterprise/inject/spi/AfterTypeDiscovery.java index 64a0dfd5..4079dd21 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AfterTypeDiscovery.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AfterTypeDiscovery.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Annotated.java b/api/src/main/java/jakarta/enterprise/inject/spi/Annotated.java index 3f96a563..e0d51d70 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Annotated.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Annotated.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedCallable.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedCallable.java index 1d02a9b8..5b5f0754 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedCallable.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedCallable.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedConstructor.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedConstructor.java index f0231573..9d9ae5fc 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedConstructor.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedConstructor.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedField.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedField.java index 6ec36371..41f1e7b2 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedField.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedField.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMember.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMember.java index 575c0d60..ceffb59b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMember.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMember.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMethod.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMethod.java index c865c4f4..38f5f104 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMethod.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedMethod.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedParameter.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedParameter.java index a0f9b1f6..71a517a5 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedParameter.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedParameter.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedType.java b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedType.java index bc4ab0c4..a7702349 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedType.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/AnnotatedType.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Bean.java b/api/src/main/java/jakarta/enterprise/inject/spi/Bean.java index 43365923..e400ee75 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Bean.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Bean.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanAttributes.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanAttributes.java index 9782b30f..318c2add 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanAttributes.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanAttributes.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java index e260bc84..2224ae64 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, 2013 Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeforeBeanDiscovery.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeforeBeanDiscovery.java index 7b345484..cccf0209 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeforeBeanDiscovery.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeforeBeanDiscovery.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeforeShutdown.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeforeShutdown.java index 0488c113..9af0fc8e 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeforeShutdown.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeforeShutdown.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java index f044a75a..7e793500 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/CDIProvider.java b/api/src/main/java/jakarta/enterprise/inject/spi/CDIProvider.java index 1b5683e3..a87521ba 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/CDIProvider.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/CDIProvider.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, 2015 Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Decorator.java b/api/src/main/java/jakarta/enterprise/inject/spi/Decorator.java index e8025c9f..7581ba2c 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Decorator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Decorator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/DefinitionException.java b/api/src/main/java/jakarta/enterprise/inject/spi/DefinitionException.java index bee83dbc..adac4209 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/DefinitionException.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/DefinitionException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/DeploymentException.java b/api/src/main/java/jakarta/enterprise/inject/spi/DeploymentException.java index 597b2612..5b94d3f3 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/DeploymentException.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/DeploymentException.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/EventContext.java b/api/src/main/java/jakarta/enterprise/inject/spi/EventContext.java index 264bd61d..71f3a614 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/EventContext.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/EventContext.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016 Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java b/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java index 07fe229f..c8e5c2e2 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, 2015 Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Extension.java b/api/src/main/java/jakarta/enterprise/inject/spi/Extension.java index 8081b2e4..f5afeab3 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Extension.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Extension.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/InjectionPoint.java b/api/src/main/java/jakarta/enterprise/inject/spi/InjectionPoint.java index 5c988c31..de146e94 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/InjectionPoint.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/InjectionPoint.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTarget.java b/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTarget.java index 647e6849..11ce7e1f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTarget.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTarget.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTargetFactory.java b/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTargetFactory.java index 047ac1c4..31c22402 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTargetFactory.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/InjectionTargetFactory.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionFactory.java b/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionFactory.java index a4017344..b981f375 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionFactory.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionFactory.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionType.java b/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionType.java index ff84e97b..93481957 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionType.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/InterceptionType.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Interceptor.java b/api/src/main/java/jakarta/enterprise/inject/spi/Interceptor.java index f11b3a14..ed2a3ac8 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Interceptor.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Interceptor.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java b/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java index 56e92f94..dec726ed 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, 2015 Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/PassivationCapable.java b/api/src/main/java/jakarta/enterprise/inject/spi/PassivationCapable.java index 7f00edc2..10b2fd89 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/PassivationCapable.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/PassivationCapable.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Prioritized.java b/api/src/main/java/jakarta/enterprise/inject/spi/Prioritized.java index 744ddff4..3fbfe479 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Prioritized.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Prioritized.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessAnnotatedType.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessAnnotatedType.java index 3598e972..9de807d2 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessAnnotatedType.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessAnnotatedType.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBean.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBean.java index eaabc6a7..ca4aa4b4 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBean.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBean.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBeanAttributes.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBeanAttributes.java index 91cf7547..f0766571 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBeanAttributes.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessBeanAttributes.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionPoint.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionPoint.java index 5fc00bfe..b919de6b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionPoint.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionPoint.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionTarget.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionTarget.java index f4235276..7be1e8b2 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionTarget.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessInjectionTarget.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java index e1cfa67d..f2cd0b21 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessObserverMethod.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessObserverMethod.java index 1a80fc75..b3c6589a 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessObserverMethod.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessObserverMethod.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducer.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducer.java index e7dc2433..3475d27e 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducer.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducer.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerField.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerField.java index c794dcd0..5d103f5f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerField.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerField.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerMethod.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerMethod.java index f7e9b928..2fcade8d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerMethod.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessProducerMethod.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSessionBean.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSessionBean.java index 83cbee0c..531f1846 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSessionBean.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSessionBean.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticAnnotatedType.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticAnnotatedType.java index 872b13fd..02b071f5 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticAnnotatedType.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticAnnotatedType.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticBean.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticBean.java index afc92442..ecf68a3b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticBean.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticBean.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticObserverMethod.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticObserverMethod.java index 4ec81f13..f8b53b83 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticObserverMethod.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessSyntheticObserverMethod.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Producer.java b/api/src/main/java/jakarta/enterprise/inject/spi/Producer.java index 9c5fd24d..7d3a438d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Producer.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Producer.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProducerFactory.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProducerFactory.java index c73fd432..94f3229d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProducerFactory.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProducerFactory.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/SecurityActions.java b/api/src/main/java/jakarta/enterprise/inject/spi/SecurityActions.java index e84ce5d7..56aa55bb 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/SecurityActions.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/SecurityActions.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2018, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/SessionBeanType.java b/api/src/main/java/jakarta/enterprise/inject/spi/SessionBeanType.java index 3b694a93..4c6ce69b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/SessionBeanType.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/SessionBeanType.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/Unmanaged.java b/api/src/main/java/jakarta/enterprise/inject/spi/Unmanaged.java index c161c959..2e6a96b5 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/Unmanaged.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/Unmanaged.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/WithAnnotations.java b/api/src/main/java/jakarta/enterprise/inject/spi/WithAnnotations.java index f0d1a2aa..23b96d8d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/WithAnnotations.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/WithAnnotations.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedConstructorConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedConstructorConfigurator.java index 6df1b4ba..83396c19 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedConstructorConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedConstructorConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedFieldConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedFieldConfigurator.java index 6f4488fb..09628904 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedFieldConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedFieldConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedMethodConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedMethodConfigurator.java index 85d2baa2..6012777f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedMethodConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedMethodConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedParameterConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedParameterConfigurator.java index 9203aa5a..71304e46 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedParameterConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedParameterConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedTypeConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedTypeConfigurator.java index 19da1bff..b1f6698b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedTypeConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/AnnotatedTypeConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanAttributesConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanAttributesConfigurator.java index 02bbe073..5fdae6e7 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanAttributesConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanAttributesConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanConfigurator.java index 4874b926..db12cf9c 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/BeanConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2015, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/InjectionPointConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/InjectionPointConfigurator.java index d55a4a08..2048fafc 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/InjectionPointConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/InjectionPointConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ObserverMethodConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ObserverMethodConfigurator.java index 4cbc6c72..66e71bba 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ObserverMethodConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ObserverMethodConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ProducerConfigurator.java b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ProducerConfigurator.java index 64f950ac..ceb4163b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ProducerConfigurator.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/configurator/ProducerConfigurator.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2016, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java b/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java index 1bf3da7e..f4ec428d 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java b/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java index 7664b375..e77d34fb 100644 --- a/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java +++ b/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2018, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/util/Nonbinding.java b/api/src/main/java/jakarta/enterprise/util/Nonbinding.java index e2e10c3a..40a402a8 100644 --- a/api/src/main/java/jakarta/enterprise/util/Nonbinding.java +++ b/api/src/main/java/jakarta/enterprise/util/Nonbinding.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/util/SecurityActions.java b/api/src/main/java/jakarta/enterprise/util/SecurityActions.java index d3d176b5..471b83e4 100644 --- a/api/src/main/java/jakarta/enterprise/util/SecurityActions.java +++ b/api/src/main/java/jakarta/enterprise/util/SecurityActions.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2018, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/util/TypeLiteral.java b/api/src/main/java/jakarta/enterprise/util/TypeLiteral.java index cc5b5605..1fd24c6b 100644 --- a/api/src/main/java/jakarta/enterprise/util/TypeLiteral.java +++ b/api/src/main/java/jakarta/enterprise/util/TypeLiteral.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/java/jakarta/enterprise/util/package-info.java b/api/src/main/java/jakarta/enterprise/util/package-info.java index 1192073a..d84f539d 100644 --- a/api/src/main/java/jakarta/enterprise/util/package-info.java +++ b/api/src/main/java/jakarta/enterprise/util/package-info.java @@ -1,5 +1,4 @@ /* - * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. diff --git a/api/src/main/resources/beans_2_0.xsd b/api/src/main/resources/beans_2_0.xsd index 9ad62dd4..1754947c 100644 --- a/api/src/main/resources/beans_2_0.xsd +++ b/api/src/main/resources/beans_2_0.xsd @@ -1,7 +1,6 @@ diff --git a/api/src/main/resources/beans_1_1.xsd b/api/src/main/resources/beans_1_1.xsd index d632c173..dd0d4e4d 100644 --- a/api/src/main/resources/beans_1_1.xsd +++ b/api/src/main/resources/beans_1_1.xsd @@ -1,17 +1,18 @@ From af2a7314f85ce9561397c366367567ab1b0e518b Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Fri, 21 Apr 2023 16:37:25 +0200 Subject: [PATCH 012/113] Explicitly state that classes implementing BuildCompatibleExtension interface are not managed beans (#664) --- spec/src/main/asciidoc/core/implementation.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/implementation.asciidoc b/spec/src/main/asciidoc/core/implementation.asciidoc index 0ed9b406..f4611cc5 100644 --- a/spec/src/main/asciidoc/core/implementation.asciidoc +++ b/spec/src/main/asciidoc/core/implementation.asciidoc @@ -33,7 +33,7 @@ A Java class is a managed bean if it meets all of the following conditions: * It is not an inner class. * It is a non-abstract class. -* It does not implement `jakarta.enterprise.inject.spi.Extension`. +* It does not implement `jakarta.enterprise.inject.spi.Extension` or `jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension`. * It is not annotated `@Vetoed` or in a package annotated `@Vetoed`. * It has an appropriate constructor - either: ** the class has a constructor with no parameters, or From 83c40ad21b8383b2d586c9387913e49e7d1e686c Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 25 Apr 2023 17:13:56 +0200 Subject: [PATCH 013/113] add missing @since tags for some elements added in CDI 4.0 --- .../main/java/jakarta/enterprise/inject/spi/BeanContainer.java | 1 + .../main/java/jakarta/enterprise/inject/spi/ObserverMethod.java | 1 + 2 files changed, 2 insertions(+) diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java index cccc6ddc..eb620edb 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java @@ -37,6 +37,7 @@ * * * @author Matej Novotny + * @since 4.0 */ public interface BeanContainer { diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java b/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java index dec726ed..ad57cbde 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ObserverMethod.java @@ -66,6 +66,7 @@ public interface ObserverMethod extends Prioritized { *

* * @return the declaring {@linkplain Bean bean} + * @since 4.0 */ default Bean getDeclaringBean() { return null; From b3ff5320a0e74eb69a1ff8e728fcb7e1f9194da7 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 25 Apr 2023 17:14:40 +0200 Subject: [PATCH 014/113] improve wording of event type assignability rules This paragraph used to have a few sentences that used terms from the bean type assignability part of the specification, which is inappropriate for this part of the specification. --- spec/src/main/asciidoc/core/events.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/src/main/asciidoc/core/events.asciidoc b/spec/src/main/asciidoc/core/events.asciidoc index b18fd183..5c9a1805 100644 --- a/spec/src/main/asciidoc/core/events.asciidoc +++ b/spec/src/main/asciidoc/core/events.asciidoc @@ -219,9 +219,9 @@ If the runtime type of the event object contains an unresolvable type variable, ==== Assignability of type variables, raw and parameterized types -An event type is considered assignable to a type variable if the event type is assignable to the upper bound, if any. +An event type is considered assignable to an observed event type that is a type variable if the event type is assignable to the upper bound of the type variable, if any. -A raw event type is considered assignable to a parameterized observed event type if the raw types are identical and all type parameters of the required type are either unbounded type variables or `java.lang.Object`. +A raw event type is considered assignable to a parameterized observed event type if the raw types are identical and all type parameters of the observed event type are either unbounded type variables or `java.lang.Object`. A parameterized event type is considered assignable to a raw observed event type if the raw types are identical. From 9f70b15c97a6ebe01b0acf7da185c1ccb9bbd9db Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 25 Apr 2023 17:17:30 +0200 Subject: [PATCH 015/113] make the section about interceptors with disposer methods more precise --- spec/src/main/asciidoc/core/implementation.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/implementation.asciidoc b/spec/src/main/asciidoc/core/implementation.asciidoc index f4611cc5..4b41305b 100644 --- a/spec/src/main/asciidoc/core/implementation.asciidoc +++ b/spec/src/main/asciidoc/core/implementation.asciidoc @@ -379,7 +379,7 @@ If a method has more than one parameter annotated `@Disposes`, the container aut If a disposer method is annotated `@Produces` or `@Inject`, has a parameter annotated `@Observes` or has a parameter annotated `@ObservesAsync`, the container automatically detects the problem and treats it as a definition error. Interceptors may not declare disposer methods. -If an interceptor has a method annotated `@Disposes`, the container automatically detects the problem and treats it as a definition error. +If an interceptor has a method that has a parameter annotated `@Disposes`, the container automatically detects the problem and treats it as a definition error. In addition to the disposed parameter, a disposer method may declare additional parameters, which may also specify qualifiers. These additional parameters are injection points. From cbcc72da28f9ffe99d5c116c1236bddf4b4fb885 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 25 Apr 2023 17:19:17 +0200 Subject: [PATCH 016/113] use a more appropriate link to the enablement section in CDI Full --- spec/src/main/asciidoc/core/inheritance_full.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/inheritance_full.asciidoc b/spec/src/main/asciidoc/core/inheritance_full.asciidoc index dec2836a..15170b66 100644 --- a/spec/src/main/asciidoc/core/inheritance_full.asciidoc +++ b/spec/src/main/asciidoc/core/inheritance_full.asciidoc @@ -128,7 +128,7 @@ public class MockAsynchronousService extends AsynchronousService { } ---- -When an enabled bean, as defined in <>, specializes a second bean, we can be certain that the second bean is never instantiated or called by the container. +When an enabled bean, as defined in <>, specializes a second bean, we can be certain that the second bean is never instantiated or called by the container. Even if the second bean defines a producer or observer method, the method will never be called. [[direct_and_indirect_specialization]] From b1f023ba543df190b1ae103b706d78a2114c560a Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Tue, 23 May 2023 03:08:01 -0500 Subject: [PATCH 017/113] Address the javadoc errors under jdk17 (#672) * Address the javadoc errors under jdk17, #671 * Add Java 17 to the actions matrix Signed-off-by: Scott M Stark --- .github/workflows/ci-actions.yml | 3 +-- api/src/main/java/jakarta/decorator/package-info.java | 6 +++--- .../java/jakarta/enterprise/context/package-info.java | 6 +++--- .../main/java/jakarta/enterprise/event/Observes.java | 2 +- .../java/jakarta/enterprise/event/package-info.java | 6 +++--- .../jakarta/enterprise/inject/spi/package-info.java | 10 +++++----- 6 files changed, 16 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index 7cdcbf0a..0f29c5a6 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -11,8 +11,7 @@ jobs: strategy: fail-fast: false matrix: - java: - - 11 + java: [ '11', '17' ] steps: - uses: actions/checkout@v2 - name: Set up JDK ${{ matrix.java }} diff --git a/api/src/main/java/jakarta/decorator/package-info.java b/api/src/main/java/jakarta/decorator/package-info.java index 94bdde62..4610ed95 100644 --- a/api/src/main/java/jakarta/decorator/package-info.java +++ b/api/src/main/java/jakarta/decorator/package-info.java @@ -32,7 +32,7 @@ * for which interceptors are optimized. Decorators are called * after interceptors.

* - *

Decorated types

+ *

Decorated types

* *

The set of decorated types of a decorator includes all * bean types of the managed bean that are Java interfaces, @@ -49,7 +49,7 @@ *

A decorator may be an abstract class, and is not required to * implement every method of every decorated type.

* - *

Delegate injection points

+ *

Delegate injection points

* *

All decorators have a * {@linkplain jakarta.decorator.Delegate delegate injection point}. @@ -60,7 +60,7 @@ * extend every decorated type. A decorator is not required to * implement the type of the delegate injection point.

* - *

Enabled decorators

+ *

Enabled decorators

* *

By default, a bean archive has no enabled decorators. A * decorator must be explicitly enabled by listing its bean class diff --git a/api/src/main/java/jakarta/enterprise/context/package-info.java b/api/src/main/java/jakarta/enterprise/context/package-info.java index b2e2232d..86e701e4 100644 --- a/api/src/main/java/jakarta/enterprise/context/package-info.java +++ b/api/src/main/java/jakarta/enterprise/context/package-info.java @@ -29,7 +29,7 @@ * bean * * - *

Built-in scopes

+ *

Built-in scopes

* *

The following built-in scopes are provided: * {@link jakarta.enterprise.context.Dependent @Dependent}, @@ -57,7 +57,7 @@ * method invocations or to asynchronous processes such as JMS message * listeners or EJB timer service timeouts.

* - *

Normal scopes and pseudo-scopes

+ *

Normal scopes and pseudo-scopes

* *

Most scopes are normal scopes. Normal scopes are declared * using {@link jakarta.enterprise.context.NormalScope @NormalScope}. @@ -80,7 +80,7 @@ * {@link jakarta.enterprise.context.Dependent @Dependent} and * {@link jakarta.inject.Singleton @Singleton} pseudo-scopes.

* - *

Contextual and injected reference validity

+ *

Contextual and injected reference validity

* *

A reference to a bean obtained from the container via {@linkplain * jakarta.enterprise.inject.Instance programmatic lookup} is called a diff --git a/api/src/main/java/jakarta/enterprise/event/Observes.java b/api/src/main/java/jakarta/enterprise/event/Observes.java index 20175f55..c1d9ea4c 100644 --- a/api/src/main/java/jakarta/enterprise/event/Observes.java +++ b/api/src/main/java/jakarta/enterprise/event/Observes.java @@ -105,8 +105,8 @@ * *

* By default, the observer method is notified when the event is fired. - * @return phase of the transaction *

+ * @return phase of the transaction */ public TransactionPhase during() default TransactionPhase.IN_PROGRESS; } diff --git a/api/src/main/java/jakarta/enterprise/event/package-info.java b/api/src/main/java/jakarta/enterprise/event/package-info.java index d3e87e0a..1f0f9450 100644 --- a/api/src/main/java/jakarta/enterprise/event/package-info.java +++ b/api/src/main/java/jakarta/enterprise/event/package-info.java @@ -37,7 +37,7 @@ *

The {@link jakarta.enterprise.event.Event} interface is used to * fire events.

* - *

Event objects and event types

+ *

Event objects and event types

* *

The event object acts as a payload, to propagate state from * producer to consumer. An event object is an instance of a concrete @@ -47,13 +47,13 @@ * interfaces of the runtime class of the event object. An event type * may not contain a type variable.

* - *

Event qualifiers

+ *

Event qualifiers

* *

The event qualifiers act as topic selectors, allowing the consumer * to narrow the set of events it observes. An event qualifier may be an * instance of any {@linkplain jakarta.inject.Qualifier qualifier type}.

* - *

Observer methods

+ *

Observer methods

* *

An {@linkplain jakarta.enterprise.event.Observes observer method} * allows the application to receive and respond synchronously to event notifications. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java b/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java index f4ec428d..cb611f1f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/package-info.java @@ -28,7 +28,7 @@ * metadata from some other source * * - *

The BeanManager object

+ *

The BeanManager object

* *

Portable extensions sometimes interact directly with the container * via programmatic API call. The interface @@ -36,7 +36,7 @@ * for obtaining contextual references for beans, along with many other * operations of use to portable extensions.

* - *

Container lifecycle events

+ *

Container lifecycle events

* *

During the application initialization process, the container fires * a series of {@linkplain jakarta.enterprise.event events}, allowing @@ -51,7 +51,7 @@ * {@link jakarta.enterprise.inject.spi.AfterDeploymentValidation} and * {@link jakarta.enterprise.inject.spi.BeforeShutdown}.

* - *

Interfaces representing enabled beans

+ *

Interfaces representing enabled beans

* *

The interfaces * {@link jakarta.enterprise.inject.spi.Bean}, @@ -83,7 +83,7 @@ * observing the event type * {@link jakarta.enterprise.inject.spi.ProcessObserverMethod}.

* - *

Alternate metadata sources

+ *

Alternate metadata sources

* *

A portable extension may provide an alternative metadata * source, such as configuration by XML.

@@ -104,7 +104,7 @@ * {@linkplain jakarta.enterprise.inject.spi.ProcessAnnotatedType#setAnnotatedType(AnnotatedType) * wrapping} the {@link jakarta.enterprise.inject.spi.AnnotatedType}.

* - *

Producer and InjectionTarget

+ *

Producer and InjectionTarget

* *

The interfaces {@link jakarta.enterprise.inject.spi.Producer} and * {@link jakarta.enterprise.inject.spi.InjectionTarget} abstract the From edae31c4629c77a44ef6814d3da57fa0886dbec0 Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Tue, 23 May 2023 16:37:02 +0200 Subject: [PATCH 018/113] Introduce BeanContainer.getContexts() to be able to get hold of all context objects, even if inactive (#629) --- .../jakarta/enterprise/inject/spi/BeanContainer.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java index eb620edb..1d608b48 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java @@ -13,6 +13,7 @@ import java.lang.annotation.Annotation; import java.lang.reflect.Type; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -213,6 +214,15 @@ public interface BeanContainer { */ Context getContext(Class scopeType); + /** + * Obtains all {@linkplain Context context objects}, active and inactive, for the given + * {@linkplain jakarta.enterprise.context scope}. + * + * @param scopeType the {@linkplain jakarta.enterprise.context scope}; must not be {@code null} + * @return immutable collection of {@linkplain Context context objects}; never {@code null}, but may be empty + */ + Collection getContexts(Class scopeType); + /** * Returns an instance of Event with specified type java.lang.Object and specified qualifier @Default * It allows typesafe synchronous or asynchronous event firing without injection of {@link Event} built-in bean requirement. From 96cd940c60e30456f47645fd9f57021eba561f3e Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 24 May 2023 10:09:07 +0200 Subject: [PATCH 019/113] Improve AnnotationLiteral javadoc (#657) --- api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java | 1 + 1 file changed, 1 insertion(+) diff --git a/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java b/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java index e77d34fb..a9d8cdc7 100644 --- a/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java +++ b/api/src/main/java/jakarta/enterprise/util/AnnotationLiteral.java @@ -38,6 +38,7 @@ * *

* An instance of an annotation type may be obtained by subclassing AnnotationLiteral. + * The subclass must implement the annotation interface to satisfy the {@link Annotation} contract. *

* *

From 820ad5dbc6c941aa195ea078a2f13b654591442b Mon Sep 17 00:00:00 2001
From: Ladislav Thon 
Date: Wed, 24 May 2023 11:54:35 +0200
Subject: [PATCH 020/113] Fix missing wording about priority on stereotypes
 (#674)

---
 spec/src/main/asciidoc/core/injectionandresolution.asciidoc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc
index 9905f894..b737057e 100644
--- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc
+++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc
@@ -45,7 +45,8 @@ An alternative is not available for injection, lookup or name resolution to clas
 An alternative may be given a priority for the application:
 
 * by placing the `@Priority` annotation on the bean class of a managed bean, or
-* by placing the `@Priority` annotation on the bean class that declares the producer method, field or resource.
+* by placing the `@Priority` annotation on the bean class that declares the producer method, field or resource, or
+* by placing the `@Priority` annotation on a stereotype that is applied to the bean class, producer method or producer field.
 
 [[enablement]]
 

From 3c95b0fd00d5af12cedac9ae8d2c0b7382bad91f Mon Sep 17 00:00:00 2001
From: Ladislav Thon 
Date: Wed, 24 May 2023 17:46:42 +0200
Subject: [PATCH 021/113] Bump CDI version to 4.1 and place EL integration API
 in a new supplemental artifact (#644)

* Fix remnants of BeanManager.fireEvent() removal

* Centralize common Maven properties in the parent POM

* Fix EL import version in bundle metadata

* Bump CDI version to 4.1

* Place the EL integration API to ELAwareBeanManager in a new supplemental API artifact

The existing EL integration API in `BeanManager` is deprecated for removal.
---
 api/pom.xml                                   |  29 ++--
 .../enterprise/inject/spi/BeanManager.java    |   7 +-
 .../enterprise/inject/spi/EventMetadata.java  |   3 +-
 el/pom.xml                                    | 147 ++++++++++++++++++
 .../inject/spi/el/ELAwareBeanManager.java     |  34 ++++
 el/src/main/java/module-info.java             |   6 +
 .../main/javadoc/doc-files/speclicense.html   |  72 +++++++++
 el/src/main/javadoc/overview.html             |  11 ++
 lang-model/pom.xml                            |  19 +--
 pom.xml                                       |  13 +-
 spec/pom.xml                                  |   2 +-
 spec/src/main/asciidoc/cdi-spec.asciidoc      |   4 +-
 spec/src/main/asciidoc/core/events.asciidoc   |   4 +-
 spec/src/main/asciidoc/core/spi_full.asciidoc |  11 --
 .../asciidoc/javaee/definition_ee.asciidoc    |   2 +-
 spec/src/main/asciidoc/javaee/el.asciidoc     |  46 ++++++
 .../javaee/javaeeintegration.asciidoc         |   2 +
 .../javaee/packagingdeployment_ee.asciidoc    |  10 --
 spec/src/main/asciidoc/javaee/spi_ee.asciidoc |  11 --
 spec/src/main/asciidoc/preface.asciidoc       |   7 +-
 20 files changed, 366 insertions(+), 74 deletions(-)
 create mode 100644 el/pom.xml
 create mode 100644 el/src/main/java/jakarta/enterprise/inject/spi/el/ELAwareBeanManager.java
 create mode 100644 el/src/main/java/module-info.java
 create mode 100644 el/src/main/javadoc/doc-files/speclicense.html
 create mode 100644 el/src/main/javadoc/overview.html
 create mode 100644 spec/src/main/asciidoc/javaee/el.asciidoc

diff --git a/api/pom.xml b/api/pom.xml
index ffcf534e..94405952 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -21,7 +21,7 @@
 	
 		jakarta.enterprise
 		jakarta.enterprise.cdi-parent
-		4.0.2-SNAPSHOT
+		4.1.0-SNAPSHOT
 	
 
 	jakarta.enterprise.cdi-api
@@ -128,12 +128,6 @@
 		2.0.1
 		5.0.0
 		2.1.0
-
-		11
-		5.1.2
-		3.3.0
-		3.0.0-M5
-		UTF-8
 	
 
 	
@@ -289,8 +283,9 @@
 		
 		
 			
+				org.apache.maven.plugins
 				maven-compiler-plugin
-				3.8.1
+				${maven-compiler-plugin.version}
 				
 					
 						-Xlint:all
@@ -314,11 +309,11 @@
 					
 						jakarta.cdi
 						
-							jakarta.decorator;version=4.0,
-							jakarta.enterprise.*;version=4.0,
+							jakarta.decorator;version=4.1,
+							jakarta.enterprise.*;version=4.1,
 						
 						
-							jakarta.el; version=4.0,
+							jakarta.el;version=5.0,
 							*
 						
 					
@@ -328,7 +323,7 @@
 			
 				org.apache.maven.plugins
 				maven-jar-plugin
-				3.2.0
+				${maven-jar-plugin.version}
 				
 					
 						${project.build.outputDirectory}/META-INF/MANIFEST.MF
@@ -375,14 +370,14 @@
 			
 				org.apache.maven.plugins
 				maven-javadoc-plugin
-				${maven-javadoc-plugin}
+				${maven-javadoc-plugin.version}
 				
 					true
-					Jakarta Context Dependency Injection API
-					Jakarta Context Dependency Injection API
+					Jakarta Contexts and Dependency Injection API
+					Jakarta Contexts and Dependency Injection API
 					false
-					Jakarta Context Dependency Injection API
-					
Jakarta Context Dependency Injection ${project.version}]]> + Jakarta Contexts and Dependency Injection API +
Jakarta Contexts and Dependency Injection ${project.version}]]>
cdi-dev@eclipse.org.
diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java index 2224ae64..d70548ba 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java @@ -227,9 +227,11 @@ public interface BeanManager extends BeanContainer { /** * Returns a {@link jakarta.el.ELResolver} that resolves beans by EL name. - * + * + * @deprecated use {@code ELAwareBeanManager}, this method will be removed in CDI 5.0 * @return the {@link jakarta.el.ELResolver} */ + @Deprecated(since = "4.1", forRemoval = true) public ELResolver getELResolver(); /** @@ -239,10 +241,11 @@ public interface BeanManager extends BeanContainer { * {@link jakarta.el.ExpressionFactory}, the container handles destruction of objects with scope * {@link Dependent}. * - * + * @deprecated use {@code ELAwareBeanManager}, this method will be removed in CDI 5.0 * @param expressionFactory the {@link jakarta.el.ExpressionFactory} to wrap * @return the wrapped {@link jakarta.el.ExpressionFactory} */ + @Deprecated(since = "4.1", forRemoval = true) public ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory); /** diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java b/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java index c8e5c2e2..8889e962 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/EventMetadata.java @@ -25,8 +25,7 @@ /** *

- * Provides access to metadata about an observed event payload. The metadata may be for events fired with either of - * {@link Event} or {@link BeanManager#getEvent()} + * Provides access to metadata about an observed event payload. *

*

* {@link EventMetadata} may only be injected into an observer method. For example: diff --git a/el/pom.xml b/el/pom.xml new file mode 100644 index 00000000..a724101c --- /dev/null +++ b/el/pom.xml @@ -0,0 +1,147 @@ + + 4.0.0 + + + jakarta.enterprise + jakarta.enterprise.cdi-parent + 4.1.0-SNAPSHOT + + + jakarta.enterprise.cdi-el-api + jar + + CDI EL integration API + API for integrating CDI with Unified EL + + + + Apache License 2.0 + https://repository.jboss.org/licenses/apache-2.0.txt + repo + + + + + 5.0.0 + + + + + + jakarta.enterprise + jakarta.enterprise.cdi-api + ${project.version} + + + jakarta.el + jakarta.el-api + ${uel.api.version} + + + + + + + jakarta.enterprise + jakarta.enterprise.cdi-api + + + + jakarta.el + jakarta.el-api + + + + + + + ${project.basedir}/.. + + LICENSE.txt + NOTICE.md + + META-INF + + + src/main/resources + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + -Xlint:all + + + + + org.apache.felix + maven-bundle-plugin + ${maven-bundle-plugin.version} + + + bundle-manifest + process-classes + + manifest + + + + + + + jakarta.enterprise.inject.spi.el;version=4.1, + + + jakarta.el;version=5.0 + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + true + Jakarta CDI EL integration API + Jakarta CDI EL integration API + Jakarta CDI EL integration API +

Jakarta CDI EL integration API ${project.version}]]> +
+ cdi-dev@eclipse.org.
+Copyright © 2018,2020 Eclipse Foundation.
+Use is subject to license terms.]]> +
+ + + + + attach-javadocs + + jar + + + + + + + + + diff --git a/el/src/main/java/jakarta/enterprise/inject/spi/el/ELAwareBeanManager.java b/el/src/main/java/jakarta/enterprise/inject/spi/el/ELAwareBeanManager.java new file mode 100644 index 00000000..8fa8e475 --- /dev/null +++ b/el/src/main/java/jakarta/enterprise/inject/spi/el/ELAwareBeanManager.java @@ -0,0 +1,34 @@ +package jakarta.enterprise.inject.spi.el; + +import jakarta.el.ELResolver; +import jakarta.el.ExpressionFactory; +import jakarta.enterprise.context.Dependent; +import jakarta.enterprise.inject.spi.BeanManager; + +/** + * A {@link BeanManager} that allows integrators to obtain Unified EL objects + * that are integrated with the CDI container as described in the CDI specification. + * + * @since 4.1 + */ +public interface ELAwareBeanManager extends BeanManager { + /** + * Returns a {@link jakarta.el.ELResolver} that resolves beans by EL name. + * + * @return the {@link jakarta.el.ELResolver} + */ + public ELResolver getELResolver(); + + /** + * Returns a wrapper {@link jakarta.el.ExpressionFactory} that delegates {@link jakarta.el.MethodExpression} and + * {@link jakarta.el.ValueExpression} creation to the given {@link jakarta.el.ExpressionFactory}. When a Unified EL expression + * is evaluated using a {@link jakarta.el.MethodExpression} or {@link jakarta.el.ValueExpression} returned by the wrapper + * {@link jakarta.el.ExpressionFactory}, the container handles destruction of objects with scope + * {@link Dependent}. + * + * @param expressionFactory the {@link jakarta.el.ExpressionFactory} to wrap + * @return the wrapped {@link jakarta.el.ExpressionFactory} + */ + public ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory); + +} diff --git a/el/src/main/java/module-info.java b/el/src/main/java/module-info.java new file mode 100644 index 00000000..61de99b2 --- /dev/null +++ b/el/src/main/java/module-info.java @@ -0,0 +1,6 @@ +module jakarta.cdi.el { + exports jakarta.enterprise.inject.spi.el; + + requires transitive jakarta.cdi; + requires transitive jakarta.el; +} diff --git a/el/src/main/javadoc/doc-files/speclicense.html b/el/src/main/javadoc/doc-files/speclicense.html new file mode 100644 index 00000000..40691a7a --- /dev/null +++ b/el/src/main/javadoc/doc-files/speclicense.html @@ -0,0 +1,72 @@ + + + Codestin Search App + + +

Eclipse Foundation Specification License - v1.0

+

By using and/or copying this document, or the Eclipse Foundation + document from which this statement is linked, you (the licensee) agree + that you have read, understood, and will comply with the following + terms and conditions:

+ +

Permission to copy, and distribute the contents of this document, or + the Eclipse Foundation document from which this statement is linked, in + any medium for any purpose and without fee or royalty is hereby + granted, provided that you include the following on ALL copies of the + document, or portions thereof, that you use:

+ +
    +
  • link or URL to the original Eclipse Foundation document.
  • +
  • All existing copyright notices, or if one does not exist, a notice + (hypertext is preferred, but a textual representation is permitted) + of the form: "Copyright © [$date-of-document] + “Eclipse Foundation, Inc. <<url to this license>> + " +
  • +
+ +

Inclusion of the full text of this NOTICE must be provided. We + request that authorship attribution be provided in any software, + documents, or other items or products that you create pursuant to the + implementation of the contents of this document, or any portion + thereof.

+ +

No right to create modifications or derivatives of Eclipse Foundation + documents is granted pursuant to this license, except anyone may + prepare and distribute derivative works and portions of this document + in software that implements the specification, in supporting materials + accompanying such software, and in documentation of such software, + PROVIDED that all such works include the notice below. HOWEVER, the + publication of derivative works of this document for use as a technical + specification is expressly prohibited.

+ +

The notice is:

+ +

"Copyright © 2018 Eclipse Foundation. This software or + document includes material copied from or derived from [title and URI + of the Eclipse Foundation specification document]."

+ +

Disclaimers

+ +

THIS DOCUMENT IS PROVIDED "AS IS," AND THE COPYRIGHT + HOLDERS AND THE ECLIPSE FOUNDATION MAKE NO REPRESENTATIONS OR + WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, + NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE + SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS + WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR + OTHER RIGHTS.

+ +

THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION WILL NOT BE LIABLE + FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT + OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE + CONTENTS THEREOF.

+ +

The name and trademarks of the copyright holders or the Eclipse + Foundation may NOT be used in advertising or publicity pertaining to + this document or its contents without specific, written prior + permission. Title to copyright in this document will at all times + remain with copyright holders.

+ + + \ No newline at end of file diff --git a/el/src/main/javadoc/overview.html b/el/src/main/javadoc/overview.html new file mode 100644 index 00000000..ac47e9d4 --- /dev/null +++ b/el/src/main/javadoc/overview.html @@ -0,0 +1,11 @@ + + + + +

The CDI EL integration API enables CDI integration with Unified EL. +The integration entrypoint is an ELAwareBeanManager, which allows +obtaining a CDI-aware EL resolver and wrapping an EL expression factory into a CDI-aware one.

+ + + + diff --git a/lang-model/pom.xml b/lang-model/pom.xml index a7764cf1..8a580e4d 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.0.2-SNAPSHOT + 4.1.0-SNAPSHOT jakarta.enterprise.lang-model @@ -21,14 +21,6 @@ - - 11 - 5.1.2 - 3.2.0 - 2.22.0 - UTF-8 - - @@ -46,8 +38,9 @@ + org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + ${maven-compiler-plugin.version} -Xlint:all @@ -70,7 +63,7 @@ - jakarta.enterprise.lang.model.*;version=4.0, + jakarta.enterprise.lang.model.*;version=4.1, @@ -79,7 +72,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + ${maven-jar-plugin.version} ${project.build.outputDirectory}/META-INF/MANIFEST.MF @@ -89,7 +82,7 @@ org.apache.maven.plugins maven-javadoc-plugin - ${maven-javadoc-plugin} + ${maven-javadoc-plugin.version} true Jakarta CDI Language Model diff --git a/pom.xml b/pom.xml index 2c09af90..f196ef19 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent pom - 4.0.2-SNAPSHOT + 4.1.0-SNAPSHOT Parent module for CDI Specification @@ -33,12 +33,23 @@ spec lang-model api + el clean package + UTF-8 + + 11 + + 5.1.2 + 3.8.1 + 3.2.0 + 3.3.0 + 3.0.0-M5 + https://jakarta.oss.sonatype.org/ ${sonatypeOssDistMgmtNexusUrl}content/repositories/staging/ diff --git a/spec/pom.xml b/spec/pom.xml index 42bbe762..02b9de90 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.0.2-SNAPSHOT + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-spec-doc diff --git a/spec/src/main/asciidoc/cdi-spec.asciidoc b/spec/src/main/asciidoc/cdi-spec.asciidoc index aaecdf30..9f977403 100644 --- a/spec/src/main/asciidoc/cdi-spec.asciidoc +++ b/spec/src/main/asciidoc/cdi-spec.asciidoc @@ -1,8 +1,8 @@ = Jakarta Contexts and Dependency Injection :author: Jakarta Contexts and Dependency Injection Specification Project :email: cdi-dev@eclipse.org -:revnumber: 4.0 -:revdate: Feburary 7 2022 +:revnumber: 4.1 +:revdate: May 24 2023 :revremark: Draft :version-label!: :sectanchors: diff --git a/spec/src/main/asciidoc/core/events.asciidoc b/spec/src/main/asciidoc/core/events.asciidoc index 5c9a1805..a743cb23 100644 --- a/spec/src/main/asciidoc/core/events.asciidoc +++ b/spec/src/main/asciidoc/core/events.asciidoc @@ -530,7 +530,7 @@ Observer methods may throw exceptions: Exception management during an asynchronous event is defined in <>. * Otherwise, the exception aborts processing of the event. No other observer methods of that event will be called. -The `BeanManager.getEvent()` or `Event.fire()` method rethrows the exception. +The `Event.fire()` method rethrows the exception. If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) `ObserverException`. @@ -588,7 +588,7 @@ The transaction context and lifecycle contexts active when an observer method is As specified in <>, contexts associated with built-in normal scope don't propagate across asynchronous observers. * If the observer method is a before completion transactional observer method, it is called within the context of the transaction that is about to complete and with the same lifecycle contexts. * Otherwise, if the observer method is any other kind of transactional observer method, it is called in an unspecified transaction context, but with the same lifecycle contexts as the transaction that just completed. -* Otherwise, the observer method is called in the same transaction context and lifecycle contexts as the invocation of `Event.fire()` or `BeanManager.getEvent()`. +* Otherwise, the observer method is called in the same transaction context and lifecycle contexts as the invocation of `Event.fire()`. [[observable_container_lifecycle_events]] diff --git a/spec/src/main/asciidoc/core/spi_full.asciidoc b/spec/src/main/asciidoc/core/spi_full.asciidoc index a88ac8e8..d58c81ca 100644 --- a/spec/src/main/asciidoc/core/spi_full.asciidoc +++ b/spec/src/main/asciidoc/core/spi_full.asciidoc @@ -389,17 +389,6 @@ public int getQualifierHashCode(Annotation qualifier); public int getInterceptorBindingHashCode(Annotation interceptorBinding); ---- -[[bm_obtain_elresolver]] - -==== Obtaining the `ELResolver` - -The method `BeanManager.getELResolver()` returns the `jakarta.el.ELResolver` specified in <>. - -[source, java] ----- -public ELResolver getELResolver(); ----- - [[bm_obtain_annotatedtype]] ==== Obtaining an `AnnotatedType` for a class diff --git a/spec/src/main/asciidoc/javaee/definition_ee.asciidoc b/spec/src/main/asciidoc/javaee/definition_ee.asciidoc index 74e615ba..b01c1fd3 100644 --- a/spec/src/main/asciidoc/javaee/definition_ee.asciidoc +++ b/spec/src/main/asciidoc/javaee/definition_ee.asciidoc @@ -74,7 +74,7 @@ A bean with a name may be referred to by its name in Unified EL expressions. There is no relationship between the bean name of an EJB session bean and the EJB name of the bean. -Bean names allow the direct use of beans in JSP or JSF pages, as defined in <>. +Bean names allow the direct use of beans in JSP or JSF pages. For example, a bean with the name `products` could be used like this: [source, xml] diff --git a/spec/src/main/asciidoc/javaee/el.asciidoc b/spec/src/main/asciidoc/javaee/el.asciidoc new file mode 100644 index 00000000..3eef88ae --- /dev/null +++ b/spec/src/main/asciidoc/javaee/el.asciidoc @@ -0,0 +1,46 @@ +[[el]] +== Integration with Unified EL + +[[el_resolution]] +=== Bean name resolution in EL expressions + +The container must provide a Unified EL `ELResolver` to the servlet engine and JSF implementation that resolves bean names using the rules of name resolution defined in <> and resolving ambiguities according to <>. + +* If a name used in an EL expression does not resolve to any bean, the `ELResolver` must return a null value. +* Otherwise, if a name used in an EL expression resolves to exactly one bean, the `ELResolver` must return a contextual instance of the bean, as defined in <>. + +[[el_support]] +=== Unified EL integration API + +Since CDI version 4.1, the Unified EL integration API, which is part of the `BeanManager` API, is deprecated. +The relevant methods are placed in a new interface `jakarta.enterprise.inject.spi.el.ELAwareBeanManager`, which is present in a new supplemental CDI API artifact: `jakarta.enterprise:jakarta.enterprise.cdi-el-api`. + +==== Obtaining `ELAwareBeanManager` + +The `BeanManager` implementation in Jakarta EE must also implement `ELAwareBeanManager`. +All rules that apply to the `BeanManager`, as specified in <> and <>, also apply to `ELAwareBeanManager`. + +It follows that the container provides a built-in bean with bean type `ELAwareBeanManager`, scope `@Dependent` and qualifier `@Default`, which is a passivation capable dependency as defined in <>. +It also follows that an `ELAwareBeanManager` may be obtained by using `CDI.current().getBeanManager()` and casting. + +The EL-related methods of `ELAwareBeanManager` may be called at any time during the execution of the application. + +==== Obtaining the `ELResolver` + +The method `ELAwareBeanManager.getELResolver()` returns the `jakarta.el.ELResolver` specified in <>. +This `ELResolver` is used to satisfy the rules defined in <>. + +[source, java] +---- +public ELResolver getELResolver(); +---- + +==== Wrapping a Unified EL `ExpressionFactory` + +The method `ELAwareBeanManager.wrapExpressionFactory()` returns a wrapper `jakarta.el.ExpressionFactory` that delegates `MethodExpression` and `ValueExpression` creation to the given `ExpressionFactory`. +When a Unified EL expression is evaluated using a `MethodExpression` or `ValueExpression` returned by the wrapper `ExpressionFactory`, the rules defined in <> are enforced by the container. + +[source, java] +---- +public ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory); +---- diff --git a/spec/src/main/asciidoc/javaee/javaeeintegration.asciidoc b/spec/src/main/asciidoc/javaee/javaeeintegration.asciidoc index e05509ba..fbe81db6 100644 --- a/spec/src/main/asciidoc/javaee/javaeeintegration.asciidoc +++ b/spec/src/main/asciidoc/javaee/javaeeintegration.asciidoc @@ -27,3 +27,5 @@ include::events_ee.asciidoc[] include::spi_ee.asciidoc[] include::packagingdeployment_ee.asciidoc[] + +include::el.asciidoc[] diff --git a/spec/src/main/asciidoc/javaee/packagingdeployment_ee.asciidoc b/spec/src/main/asciidoc/javaee/packagingdeployment_ee.asciidoc index d0f95b5c..759e31e3 100644 --- a/spec/src/main/asciidoc/javaee/packagingdeployment_ee.asciidoc +++ b/spec/src/main/asciidoc/javaee/packagingdeployment_ee.asciidoc @@ -56,13 +56,3 @@ When running in Jakarta EE, the container must extend the rules defined in <> and must ensure that EJB session beans are not removed from the set of discovered types. - - -[[el]] - -=== Integration with Unified EL - -The container must provide a Unified EL `ELResolver` to the servlet engine and JSF implementation that resolves bean names using the rules of name resolution defined in <> and resolving ambiguities according to <>. - -* If a name used in an EL expression does not resolve to any bean, the `ELResolver` must return a null value. -* Otherwise, if a name used in an EL expression resolves to exactly one bean, the `ELResolver` must return a contextual instance of the bean, as defined in <>. diff --git a/spec/src/main/asciidoc/javaee/spi_ee.asciidoc b/spec/src/main/asciidoc/javaee/spi_ee.asciidoc index 19902098..8493fa46 100644 --- a/spec/src/main/asciidoc/javaee/spi_ee.asciidoc +++ b/spec/src/main/asciidoc/javaee/spi_ee.asciidoc @@ -40,17 +40,6 @@ A Jakarta EE container is required to provide a CDI provider that will allow acc Jakarta EE Components may obtain an instance of `BeanManager` from JNDI by looking up the name `java:comp/BeanManager`. -[[bm_wrap_expressionfactory]] - -==== Wrapping a Unified EL `ExpressionFactory` - -The method `BeanManager.wrapExpressionFactory()` returns a wrapper `jakarta.el.ExpressionFactory` that delegates `MethodExpression` and `ValueExpression` creation to the given `ExpressionFactory`. When a Unified EL expression is evaluated using a `MethodExpression` or `ValueExpression` returned by the wrapper `ExpressionFactory`, the rules defined in <> are enforced by the container. - -[source, java] ----- -public ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory); ----- - [[alternative_metadata_sources_ee]] === Alternative metadata sources and EJB diff --git a/spec/src/main/asciidoc/preface.asciidoc b/spec/src/main/asciidoc/preface.asciidoc index d14a4b77..233a74e5 100644 --- a/spec/src/main/asciidoc/preface.asciidoc +++ b/spec/src/main/asciidoc/preface.asciidoc @@ -24,6 +24,11 @@ This document is organized in 4 parts: === Major changes +==== Jakarta Contexts and Dependency Injection 4.1 + +link:https://jakarta.ee/specifications/cdi/4.1/[CDI 4.1] deprecates the Unified EL integration API in `BeanManager` and places the relevant methods to a dedicated interface `ELAwareBeanManager`, which is present in a new supplemental API artifact: `jakarta.enterprise:jakarta.enterprise.cdi-el-api`. +This supplemental artifact declares a JPMS module `jakarta.cdi.el`, which declares a dependency on `jakarta.cdi` and `jakarta.el`. + ==== Jakarta Contexts and Dependency Injection 4.0 link:https://jakarta.ee/specifications/cdi/4.0/[CDI 4.0] splits the CDI core into Lite and Full. Lite contains a subset of original features which are designed to work in more restricted environments. CDI Full contains everything that is in Lite plus all other features that were formerly in core CDI and are not in Lite. @@ -86,4 +91,4 @@ A new `beans.xml` 3.0 schema file was added and the namespace of the `xmlns:jakartaee="https://jakarta.ee/xml/ns/jakartaee"`. -:numbered: \ No newline at end of file +:numbered: From 3e607bb2c46899496bdedaafeef720b160c02053 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 24 May 2023 14:33:15 +0200 Subject: [PATCH 022/113] Revert incorrect change in ambiguity resolution We previously [1] changed the ambiguity resolution wording from > The container eliminates all eligible beans that are not alternatives, > except for producer methods and fields of beans that are alternatives. to > The container eliminates all eligible beans that are not alternatives > selected for the application, except for producer methods and fields > of beans that are alternatives. At that time, we did _not_ add a rule to the CDI Full section that would cover alternatives selected for the bean archive. Note that for a bean to be _eligible_, it must be _available for injection_, and an alternative is available for injection only if it is selected (for application in CDI Lite; for application or for bean archive in CDI Full). Alternative beans that are not selected are hence not even considered during ambiguity resolution, so the ambiguity resolution description does not need to mention them at all. This is why the previous description is correct. Now, only eliminating beans that are not alternatives selected for application, as the new text says, would mean that in CDI Full, beans that are alternatives selected for bean archive would also be eliminated. That would be wrong. Therefore, this change is incorrect. Of course, no implementation actually made that change in behavior, and the TCK wasn't adjusted either. There are 2 ways to fix this: revert to previous wording, or add extra wording to the CDI Full section: > The container eliminates all eligible beans that are not alternatives > selected for the bean archive or selected for the application, except > for producer methods and fields of beans that are alternatives. This would be similar how ambiguous name resolution is specified. This commit simply reverts to the previous wording, because that's easier, even though it leads to slight inconsistency between ambiguous dependency resolution and ambiguous name resolution. That inconsistency exists since CDI 1.1, so is not an issue. [1] https://github.com/jakartaee/cdi/commit/1840939753dee2af56cb9a8698ce4dc00c81e977 --- spec/src/main/asciidoc/core/injectionandresolution.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc index b737057e..25213d66 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc @@ -107,7 +107,7 @@ An _unsatisfied dependency_ exists at an injection point when no bean is eligibl An _ambiguous dependency_ exists at an injection point when multiple beans are eligible for injection to the injection point. When an ambiguous dependency exists, the container attempts to resolve the ambiguity. -The container eliminates all eligible beans that are not alternatives selected for the application, except for producer methods and fields of beans that are alternatives. +The container eliminates all eligible beans that are not alternatives, except for producer methods and fields of beans that are alternatives. If: * there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable. From 57b1c2c5ad1251f027ad700f2f0d0cae4655ab9c Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 24 May 2023 15:36:15 +0200 Subject: [PATCH 023/113] Fix the definition of availability for injection We previously [1] changed the definition of _availability for injection_ from > 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, or the bean > is a selected alternative of the application to > the bean is either not an alternative, or the module is a bean archive > and the bean is a selected alternative for the application in the CDI Lite section of the specification. The CDI Full section has the original wording verbatim, so it does not have an issue. The new wording is clearly wrong though, because the it mixes the 2nd and 3rd clause of the original sentence. What we should have done is to only remove the 2nd clause: > the bean is either not an alternative, or the bean is a selected > alternative of the application This commit does that. [1] https://github.com/jakartaee/cdi/commit/693139b302b497df00461d40d4eb2c674bb052fa --- spec/src/main/asciidoc/core/injectionandresolution.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc index 25213d66..e744e274 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc @@ -68,7 +68,7 @@ A bean is _available for injection_ in a certain module if: * 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 is either not an alternative, or 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. [[typesafe_resolution]] From 9f6d5d0797c712655b095c6e75990bccea9b5bd3 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 31 May 2023 14:24:38 +0200 Subject: [PATCH 024/113] Move the specification of BeanManager.getInjectableReference() to CDI Full We previously [1] moved the `getInjectableReference()` from the `BeanContainer` interface to the `BeanManager` [2], but did not update the specification text accordingly. Thus, the method is specified in the CDI Lite part of the spec, but it in fact belongs to CDI Full. This commit moves the spec text around to fix that. Additionally, this commit removes the declaration of `resolveObserverMethods()` from `BeanManager`, because that just overrides the same declaration that is present on `BeanContainer`. Finally, this commit moves the declaration of `getInjectableReference()` from the end of the `BeanManager` source code to the beginning, for symmetry with the `BeanContainer` declaration and to restore the previous layout. [1] https://github.com/jakartaee/cdi/commit/520bad1989101bf4523e13e8e0c8f2d23cdc34b6 [2] https://github.com/jakartaee/cdi/issues/568 --- .../enterprise/inject/spi/BeanManager.java | 49 ++++++------------- .../asciidoc/core/beanmanager_lite.asciidoc | 18 ------- spec/src/main/asciidoc/core/spi_full.asciidoc | 19 +++++-- 3 files changed, 32 insertions(+), 54 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java index d70548ba..498bcc9b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java @@ -92,6 +92,22 @@ */ public interface BeanManager extends BeanContainer { + /** + *

+ * Obtains an injectable reference for a certain {@linkplain InjectionPoint injection point}. + *

+ * + * @param ij the target injection point + * @param ctx a {@link CreationalContext} that may be used to destroy any object with scope + * {@link Dependent} that is created + * @return the injectable reference + * @throws UnsatisfiedResolutionException if typesafe resolution results in an unsatisfied dependency + * @throws AmbiguousResolutionException typesafe resolution results in an unresolvable ambiguous dependency + * @throws IllegalStateException if called during application initialization, before the {@link AfterDeploymentValidation} + * event is fired. + */ + Object getInjectableReference(InjectionPoint ij, CreationalContext ctx); + /** * Returns the {@link PassivationCapable} bean with the given identifier. * @@ -121,24 +137,6 @@ public interface BeanManager extends BeanContainer { */ public void validate(InjectionPoint injectionPoint); - /** - * Return an ordered set of {@linkplain ObserverMethod observer methods} for an event. - * - * Note that when called during invocation of an {@link AfterBeanDiscovery} event observer, - * this method will only return observers discovered by the container before the {@link AfterBeanDiscovery} event is fired. - * - * @param the type of the event - * @param event the event object - * @param qualifiers the event qualifiers - * @return the resulting set of {@linkplain ObserverMethod observer methods} - * @throws IllegalArgumentException if the runtime type of the event object contains a type variable - * @throws IllegalArgumentException if two instances of the same non repeating qualifier type are given - * @throws IllegalArgumentException if an instance of an annotation that is not a qualifier type is given - * @throws IllegalStateException if called during application initialization, before the {@link AfterBeanDiscovery} - * event is fired. - */ - public Set> resolveObserverMethods(T event, Annotation... qualifiers); - /** * Return an ordered list of {@linkplain Decorator decorators} for a set of bean types and a set of qualifiers and which are * enabled in the module or library containing the class into which the BeanManager was injected or the Java EE @@ -423,19 +421,4 @@ public Bean createBean(BeanAttributes attributes, Class beanClass, */ InterceptionFactory createInterceptionFactory(CreationalContext ctx, Class clazz); - /** - *

- * Obtains an injectable reference for a certain {@linkplain InjectionPoint injection point}. - *

- * - * @param ij the target injection point - * @param ctx a {@link CreationalContext} that may be used to destroy any object with scope - * {@link Dependent} that is created - * @return the injectable reference - * @throws UnsatisfiedResolutionException if typesafe resolution results in an unsatisfied dependency - * @throws AmbiguousResolutionException typesafe resolution results in an unresolvable ambiguous dependency - * @throws IllegalStateException if called during application initialization, before the {@link AfterDeploymentValidation} - * event is fired. - */ - Object getInjectableReference(InjectionPoint ij, CreationalContext ctx); } diff --git a/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc b/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc index 07ecc51c..532efd19 100644 --- a/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc +++ b/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc @@ -90,24 +90,6 @@ The third parameter is an instance of `CreationalContext` that may be used to de If the given type is not a bean type of the given bean, an `IllegalArgumentException` is thrown. -[[bm_obtain_injectable_reference]] - -==== Obtaining an injectable reference - -The method `BeanContainer.getInjectableReference()` returns an injectable reference for a given injection point, as defined in <>. - -[source, java] ----- -public Object getInjectableReference(InjectionPoint ij, CreationalContext ctx); ----- - -The first parameter represents the target injection point. -The second parameter is an instance of `CreationalContext` that may be used to destroy any object with scope `@Dependent` that is created. - -If typesafe resolution results in an unsatisfied dependency, the container must throw an `UnsatisfiedResolutionException`. If typesafe resolution results in an unresolvable ambiguous dependency, the container must throw an `AmbiguousResolutionException`. - -Implementations of `Bean` usually maintain a reference to an instance of `BeanContainer`. When the `Bean` implementation performs dependency injection, it must obtain the contextual instances to inject by calling `BeanContainer.getInjectableReference()`, passing an instance of `InjectionPoint` that represents the injection point and the instance of `CreationalContext` that was passed to `Bean.create()`. - [[bm_obtain_creationalcontext]] ==== Obtaining a `CreationalContext` diff --git a/spec/src/main/asciidoc/core/spi_full.asciidoc b/spec/src/main/asciidoc/core/spi_full.asciidoc index d58c81ca..6d5e04b2 100644 --- a/spec/src/main/asciidoc/core/spi_full.asciidoc +++ b/spec/src/main/asciidoc/core/spi_full.asciidoc @@ -256,14 +256,27 @@ A portable extension or other object may obtain a reference to the current conta `CDI.getBeanManager()` and `CDI.getBeanContainer()` may be called at any time after the container fires the `BeforeBeanDiscovery` container lifecycle event until the container fires the `BeforeShutdown` container lifecycle event. If methods on `CDI` are called at any other time, non-portable behavior results. -[[bm_obtain_injectable_reference_full]] +[[bm_obtain_injectable_reference]] -==== Obtaining an injectable reference in {cdi_full} +==== Obtaining an injectable reference -In addition to rules defined in <>, the following rules apply. +The method `BeanManager.getInjectableReference()` returns an injectable reference for a given injection point, as defined in <>. + +[source, java] +---- +public Object getInjectableReference(InjectionPoint ij, CreationalContext ctx); +---- + +The first parameter represents the target injection point. +The second parameter is an instance of `CreationalContext` that may be used to destroy any object with scope `@Dependent` that is created. If the `InjectionPoint` represents a decorator delegate injection point, `getInjectableReference()` returns a delegate, as defined in <>. +If typesafe resolution results in an unsatisfied dependency, the container must throw an `UnsatisfiedResolutionException`. If typesafe resolution results in an unresolvable ambiguous dependency, the container must throw an `AmbiguousResolutionException`. + +Implementations of `Bean` usually maintain a reference to an instance of `BeanManager`. When the `Bean` implementation performs dependency injection, it must obtain the contextual instances to inject by calling `BeanManager.getInjectableReference()`, passing an instance of `InjectionPoint` that represents the injection point and the instance of `CreationalContext` that was passed to `Bean.create()`. + + [[bm_obtain_unmanaged_instance]] ==== Obtaining non-contextual instance From 37afd0e99f51ed0261ebfdb094575a6c45ef720e Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 27 Jun 2023 16:55:21 +0200 Subject: [PATCH 025/113] Add specification text for BeanContainer.getContexts() --- spec/src/main/asciidoc/core/beanmanager_lite.asciidoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc b/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc index 532efd19..5978c45a 100644 --- a/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc +++ b/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc @@ -233,6 +233,17 @@ The method `BeanContainer.getContext()` retrieves an active context object assoc public Context getContext(Class scopeType); ---- +[[bm_obtain_contexts]] + +==== Obtaining ``Context``s for a scope + +The method `BeanContainer.getContexts()` retrieves all context objects, active and inactive, associated with the given scope, as defined in <>. + +[source, java] +---- +public Collection getContexts(Class scopeType); +---- + [[bm_obtain_instance]] ==== Obtain an `Instance` From bbfd0c403f2224bd81240d0654670d7ad74549a2 Mon Sep 17 00:00:00 2001 From: Andrew Rouse Date: Thu, 10 Aug 2023 17:28:12 +0100 Subject: [PATCH 026/113] Fix Javadoc for createInstance validity The spec and TCK assert that BeanContainer.createInstance() must not be called before the AfterDeploymentValidation event is fired. Correct some Javadoc which was inconsistent. Signed-off-by: Andrew Rouse --- .../java/jakarta/enterprise/inject/spi/BeanContainer.java | 4 ---- .../main/java/jakarta/enterprise/inject/spi/BeanManager.java | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java index 1d608b48..cf6b0bdc 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java @@ -241,10 +241,6 @@ public interface BeanContainer { * or, in the Jakarta EE environment, the Jakarta EE component from whose JNDI environment namespace the * BeanContainer was obtained, according to the rules of typesafe resolution. *

- * Note that when called during invocation of an {@link AfterBeanDiscovery} event observer, - * the Instance returned by this method will only give access to instances of beans discovered by the container - * before the {@link AfterBeanDiscovery} event is fired. - *

* Instances of dependent scoped beans obtained with this Instance must be explicitly destroyed by calling {@link Instance#destroy(Object)} *

* If no qualifier is passed to {@link Instance#select} method, the @Default qualifier is assumed. diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java index 498bcc9b..47abcabc 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanManager.java @@ -71,12 +71,12 @@ *

  • {@link #resolveInterceptors(InterceptionType, java.lang.annotation.Annotation...)},
  • *
  • {@link #resolveObserverMethods(Object, java.lang.annotation.Annotation...)},
  • *
  • {@link #validate(InjectionPoint)},
  • - *
  • {@link #createInstance()}
  • * *

    * and the following operations must not be called before the {@link AfterDeploymentValidation} event is fired: *

    *
      + *
    • {@link #createInstance()}
    • *
    • {@link #getReference(Bean, java.lang.reflect.Type, CreationalContext)},
    • *
    • {@link #getInjectableReference(InjectionPoint, CreationalContext)},
    • *
    From 8ead70bdd135d277e277dfffc086b58dd92a1de3 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 30 Aug 2023 14:33:26 +0200 Subject: [PATCH 027/113] Fix guards against repeated external sets of SPI implementations We previously [1] added code to guard against repeated calls to these SPIs: - `BuildServicesResolver.setBuildServices()` - `CDI.setCDIProvider()` The guards are unfortunately incorrect. This commit fixes them. [1] https://github.com/jakartaee/cdi/commit/82ec5d71872212364a321cd3700d0ecadf9162d2 --- .../inject/build/compatible/spi/BuildServicesResolver.java | 2 +- api/src/main/java/jakarta/enterprise/inject/spi/CDI.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java index 702bf860..93380024 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java @@ -82,7 +82,7 @@ public static void setBuildServices(BuildServices instance) { if (instance == null) { throw new IllegalArgumentException("BuildServices instance must not be null"); } - if (configuredBuildServices != null) { + if (configuredBuildServices == null) { configuredBuildServices = instance; } else { throw new IllegalStateException("BuildServices cannot be set repeatedly. Existing BuildServices are " + configuredBuildServices); diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java index 7e793500..1182a7ef 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java @@ -123,7 +123,7 @@ public static void setCDIProvider(CDIProvider provider) { if (provider == null) { throw new IllegalArgumentException("CDIProvider must not be null"); } - if (configuredProvider != null) { + if (configuredProvider == null) { providerSetManually = true; configuredProvider = provider; } else { From 264a1a3397c5e9eb48b210694b82f24260819b59 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Mon, 2 Oct 2023 13:24:16 +0200 Subject: [PATCH 028/113] Clarify the relationship between CDI Lite and CDI Full specifications --- spec/src/main/asciidoc/core/definition_full.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spec/src/main/asciidoc/core/definition_full.asciidoc b/spec/src/main/asciidoc/core/definition_full.asciidoc index 98dcb010..9624fcda 100644 --- a/spec/src/main/asciidoc/core/definition_full.asciidoc +++ b/spec/src/main/asciidoc/core/definition_full.asciidoc @@ -2,6 +2,9 @@ -- {cdi_full} contains all the functionality defined in {cdi_lite} and adds some additional features such as specialization, decorators, session scope or conversation scope. Some of these concepts were briefly mentioned in the previous {cdi_lite} chapter and this section of specification defines them in depth. + +All rules from the {cdi_lite} specification apply to {cdi_full}, unless the {cdi_full} specification says otherwise. +Most sections of the {cdi_full} specification add new rules on top of the {cdi_lite} specification, but some override the corresponding section of the {cdi_lite} specification and provide a replacing set of rules. -- [[scopes_full]] From bf4dbf1cdd05bd5af52b3bda6ea54a6c2b1ca09a Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 3 Oct 2023 10:51:40 +0200 Subject: [PATCH 029/113] Specify behavior for sealed types Sealed types are valid bean types, but they are unproxyable. This commit only makes explicit what already implicitly follows from the existing CDI specification and updates in the Java / JVM specifications. --- spec/src/main/asciidoc/core/definition.asciidoc | 2 +- spec/src/main/asciidoc/core/implementation.asciidoc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/definition.asciidoc b/spec/src/main/asciidoc/core/definition.asciidoc index 108028cd..1f1fe828 100644 --- a/spec/src/main/asciidoc/core/definition.asciidoc +++ b/spec/src/main/asciidoc/core/definition.asciidoc @@ -81,7 +81,7 @@ The bean types of a bean are used by the rules of typesafe resolution defined in Almost any Java type may be a bean type of a bean: -* A bean type may be an interface, a concrete class or an abstract class, and may be declared final or have final methods. +* A bean type may be an interface, a concrete class or an abstract class, may be declared sealed or non-sealed or final, and may have final methods. * A bean type may be a parameterized type with actual type parameters and type variables. * A bean type may be an array type. Two array types are considered identical only if the element type is identical. diff --git a/spec/src/main/asciidoc/core/implementation.asciidoc b/spec/src/main/asciidoc/core/implementation.asciidoc index 4b41305b..54859419 100644 --- a/spec/src/main/asciidoc/core/implementation.asciidoc +++ b/spec/src/main/asciidoc/core/implementation.asciidoc @@ -662,6 +662,7 @@ Certain legal bean types cannot be proxied by the container: * classes which don't have a non-private constructor with no parameters, * classes which are declared final, * classes which have non-static, final methods with public, protected or default visibility, +* sealed classes and sealed interfaces, * primitive types, * and array types. From 15e84a07bf573ebe4ef077a667fa56dcd7ec5541 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Thu, 10 Nov 2022 15:36:41 +0100 Subject: [PATCH 030/113] Initial proposal for method invokers: introduce core concepts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _`Invoker`_ is an indirect way of invoking a bean method. It is a simple functional interface: ```java interface Invoker {     R invoke(T instance, Object[] arguments); } ``` Invokers are built using an _`InvokerBuilder`_. They must be thread-safe, so frameworks can build an invoker for each relevant method once and then reuse it to invoke that method whenever necessary. An invoker may be built for a method that: 1. is not `private`; 2. is not a constructor; 3. is declared on a bean class of a managed bean (class-based bean), with the exception of interceptors and decorators, or inherited from its supertypes. If an invocation of a method is intercepted, an equivalent invocation through an invoker is also intercepted. Portable extensions may obtain an `InvokerBuilder` in an observer of the `ProcessManagedBean` type. The `InvokerBuilder` in this case produces `Invoker` objects directly. Build compatible extensions may obtain an `InvokerBuilder` during `@Registration` from the `BeanInfo` object. The `InvokerBuilder` in this case produces `InvokerInfo` objects. `InvokerInfo` is an opaque token that can only be used to materialize an `Invoker` in synthetic components. --- .../inject/build/compatible/spi/BeanInfo.java | 20 +++ .../build/compatible/spi/InvokerInfo.java | 25 ++++ .../build/compatible/spi/Parameters.java | 13 +- .../compatible/spi/SyntheticBeanBuilder.java | 30 ++++ .../spi/SyntheticObserverBuilder.java | 28 ++++ .../inject/spi/ProcessManagedBean.java | 16 +++ .../jakarta/enterprise/invoke/Invoker.java | 128 ++++++++++++++++++ .../enterprise/invoke/InvokerBuilder.java | 28 ++++ api/src/main/java/module-info.java | 1 + 9 files changed, 285 insertions(+), 4 deletions(-) create mode 100644 api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/InvokerInfo.java create mode 100644 api/src/main/java/jakarta/enterprise/invoke/Invoker.java create mode 100644 api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BeanInfo.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BeanInfo.java index 2aeb0a49..df54baab 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BeanInfo.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BeanInfo.java @@ -10,6 +10,7 @@ package jakarta.enterprise.inject.build.compatible.spi; +import jakarta.enterprise.invoke.InvokerBuilder; import jakarta.enterprise.lang.model.AnnotationInfo; import jakarta.enterprise.lang.model.declarations.ClassInfo; import jakarta.enterprise.lang.model.declarations.FieldInfo; @@ -162,6 +163,25 @@ public interface BeanInfo { */ Collection injectionPoints(); + /** + * Returns a new {@link InvokerBuilder} for given method. The builder eventually produces + * an opaque representation of the invoker for the given method. + *

    + * The {@code method} must be declared on the bean class or inherited from a supertype + * of the bean class of this bean, otherwise an exception is thrown. + *

    + * If an invoker may not be obtained for given {@code method} as described + * in {@link jakarta.enterprise.invoke.Invoker Invoker}, an exception is thrown. + *

    + * If this method is called outside the {@code @Registration} phase, an exception is thrown. + * + * @param method method of this bean, must not be {@code null} + * @return the invoker builder, never {@code null} + * @since 4.1 + */ + // TODO we may want to introduce another entrypoint for this operation + InvokerBuilder createInvoker(MethodInfo method); + // --- /** diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/InvokerInfo.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/InvokerInfo.java new file mode 100644 index 00000000..d0038c4a --- /dev/null +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/InvokerInfo.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2022 Red Hat and others + * + * This program and the accompanying materials are made available under the + * Apache Software License 2.0 which is available at: + * https://www.apache.org/licenses/LICENSE-2.0. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +package jakarta.enterprise.inject.build.compatible.spi; + +import jakarta.enterprise.invoke.Invoker; +import jakarta.enterprise.lang.model.declarations.MethodInfo; + +/** + * Opaque token that stands in for an invoker registered using {@link BeanInfo#createInvoker(MethodInfo)}. + * It can only be used to materialize an {@link Invoker} in a synthetic component; see + * {@link SyntheticBeanBuilder#withParam(String, InvokerInfo) SyntheticBeanBuilder.withParam()} or + * {@link SyntheticObserverBuilder#withParam(String, InvokerInfo) SyntheticObserverBuilder.withParam()}. + * + * @since 4.1 + */ +public interface InvokerInfo { +} diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Parameters.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Parameters.java index 54ad368d..96b28dc7 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Parameters.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Parameters.java @@ -10,6 +10,8 @@ package jakarta.enterprise.inject.build.compatible.spi; +import jakarta.enterprise.invoke.Invoker; + /** * A {@code String}-keyed parameter map. The parameter mappings are defined * by a synthetic component builder. The CDI container passes the parameter map @@ -40,13 +42,16 @@ *

    * Annotation-typed parameters are available as instances of the annotation type, * even if an instance of {@code AnnotationInfo} was passed to the builder. + *

    + * Invoker-typed parameters are available as instances of {@link Invoker}, even though + * an instance of {@code InvokerInfo} was passed to the builder. */ public interface Parameters { /** * Returns the value of a parameter with given {@code key}. The value is expected to be of given {@code type}. * - * @param key the parameter key; must not be {@code null} - * @param type the parameter type; must not be {@code null} + * @param key the parameter key, must not be {@code null} + * @param type the parameter type, must not be {@code null} * @param the parameter type * @return the parameter value, or {@code null} if parameter with given {@code key} does not exist * @throws ClassCastException if the parameter exists, but is of a different type @@ -57,8 +62,8 @@ public interface Parameters { * Returns the value of a parameter with given {@code key}. The value is expected to be of given {@code type}. * If the parameter does not exist, returns {@code defaultValue}. * - * @param key the parameter key; must not be {@code null} - * @param type the parameter type; must not be {@code null} + * @param key the parameter key, must not be {@code null} + * @param type the parameter type, must not be {@code null} * @param defaultValue the value to return if parameter with given {@code key} does not exist * @param the parameter type * @return the parameter value, or {@code defaultValue} if parameter with given {@code key} does not exist diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java index 2f2b8f1e..8afb2c94 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java @@ -405,6 +405,36 @@ public interface SyntheticBeanBuilder { */ SyntheticBeanBuilder withParam(String key, Annotation[] value); + /** + * Adds an invoker-valued parameter to the parameter map. The parameter map is passed + * to the {@linkplain SyntheticBeanCreator creation} and {@linkplain SyntheticBeanDisposer destruction} + * functions when a bean instance is created/destroyed. + *

    + * When looked up from the parameter map in the creation/destruction function, the value will be + * an instance of {@link jakarta.enterprise.invoke.Invoker Invoker}, not an {@code InvokerInfo}. + * + * @param key the parameter key, must not be {@code null} + * @param value the parameter value + * @return this {@code SyntheticBeanBuilder} + * @since 4.1 + */ + SyntheticBeanBuilder withParam(String key, InvokerInfo value); + + /** + * Adds an invoker array-valued parameter to the parameter map. The parameter map is passed + * to the {@linkplain SyntheticBeanCreator creation} and {@linkplain SyntheticBeanDisposer destruction} + * functions when a bean instance is created/destroyed. + *

    + * When looked up from the parameter map in the creation/destruction function, the values will be + * instances of {@link jakarta.enterprise.invoke.Invoker Invoker}, not {@code InvokerInfo}. + * + * @param key the parameter key, must not be {@code null} + * @param value the parameter value + * @return this {@code SyntheticBeanBuilder} + * @since 4.1 + */ + SyntheticBeanBuilder withParam(String key, InvokerInfo[] value); + /** * Sets the class of the synthetic bean {@linkplain SyntheticBeanCreator creation} function. * CDI container will create an instance of the creation function every time when it needs diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticObserverBuilder.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticObserverBuilder.java index 25fffcb7..4e2b102c 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticObserverBuilder.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticObserverBuilder.java @@ -334,6 +334,34 @@ public interface SyntheticObserverBuilder { */ SyntheticObserverBuilder withParam(String key, Annotation[] value); + /** + * Adds an invoker-valued parameter to the parameter map. The parameter map is passed + * to the {@linkplain SyntheticObserver event notification} function when the event is fired. + *

    + * When looked up from the parameter map in the event notification function, the value will be + * an instance of {@link jakarta.enterprise.invoke.Invoker Invoker}, not an {@code InvokerInfo}. + * + * @param key the parameter key, must not be {@code null} + * @param value the parameter value + * @return this {@code SyntheticBeanBuilder} + * @since 4.1 + */ + SyntheticObserverBuilder withParam(String key, InvokerInfo value); + + /** + * Adds an invoker array-valued parameter to the parameter map. The parameter map is passed + * to the {@linkplain SyntheticObserver event notification} function when the event is fired. + *

    + * When looked up from the parameter map in the event notification function, the values will be + * instances of {@link jakarta.enterprise.invoke.Invoker Invoker}, not {@code InvokerInfo}. + * + * @param key the parameter key, must not be {@code null} + * @param value the parameter value + * @return this {@code SyntheticBeanBuilder} + * @since 4.1 + */ + SyntheticObserverBuilder withParam(String key, InvokerInfo[] value); + /** * Sets the class of the synthetic observer {@linkplain SyntheticObserver event notification} function. * CDI container will create an instance of the event notification function every time when it needs diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java index f2cd0b21..9b10bd86 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/ProcessManagedBean.java @@ -15,6 +15,9 @@ */ package jakarta.enterprise.inject.spi; +import jakarta.enterprise.invoke.Invoker; +import jakarta.enterprise.invoke.InvokerBuilder; + /** *

    * The container fires an event of this type for each enabled managed bean, before registering the @@ -38,4 +41,17 @@ public interface ProcessManagedBean extends ProcessBean { * @throws IllegalStateException if called outside of the observer method invocation */ public AnnotatedType getAnnotatedBeanClass(); + + /** + * Returns a new {@link InvokerBuilder} for given method. The builder eventually produces an invoker + * for the given method. + *

    + * The {@code method} must be declared on the bean class or inherited from a supertype + * of the bean class of the bean being registered, otherwise an exception is thrown. + * + * @param method method of the bean being registered, must not be {@code null} + * @return the invoker builder, never {@code null} + * @since 4.1 + */ + public InvokerBuilder> createInvoker(AnnotatedMethod method); } diff --git a/api/src/main/java/jakarta/enterprise/invoke/Invoker.java b/api/src/main/java/jakarta/enterprise/invoke/Invoker.java new file mode 100644 index 00000000..2f06d6f3 --- /dev/null +++ b/api/src/main/java/jakarta/enterprise/invoke/Invoker.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2022 Red Hat and others + * + * This program and the accompanying materials are made available under the + * Apache Software License 2.0 which is available at: + * https://www.apache.org/licenses/LICENSE-2.0. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +package jakarta.enterprise.invoke; + +/** + * Allows indirectly invoking a method that belongs to a managed bean (the target method). + * To invoke the method, the caller must provide all the arguments that the target method accepts, + * as well as the instance on which the target method is to be invoked, if it is not {@code static}. + *

    + * Whenever a direct invocation of a method is a business method invocation, an indirect invocation + * of that method through an invoker is also a business method invocation. + *

    + * Invoker implementations must be thread-safe. It is possible to use a single invoker instance + * to perform multiple independent invocations of the target method, possibly on different instances + * and with different arguments. + * + *

    Obtaining an invoker

    + * + * The CDI container allows {@linkplain InvokerBuilder building} an invoker for non-private + * methods declared on a managed bean class or inherited from a supertype. Attempting to build + * an invoker for a private method or a constructor of a managed bean class leads to a deployment + * problem. Attempting to build an invoker for a method of a class that is not a managed bean class + * or that is an interceptor or decorator class leads to a deployment problem. + *

    + * Multiple managed beans may inherit a method from a common supertype. In that case, each bean + * conceptually has its own method and an invoker obtained for one bean may not be used to invoke + * the method on the other bean. + *

    + * Using the {@link InvokerBuilder} is the only way to obtain an invoker. An {@code InvokerBuilder} + * can only be obtained in CDI portable extensions and build compatible extensions. + * + *

    Example

    + * + * To illustrate how invokers work, let's take a look at an example. Say that the following bean + * exists and has a method that you want to invoke indirectly: + * + *
    + * @Dependent
    + * class MyService {
    + *     String hello(String name) {
    + *         return "Hello " + name + "!";
    + *     }
    + * }
    + * 
    + * + * When you obtain an {@code InvokerBuilder} for the {@code hello()} method, you can + * immediately build a direct invoker. In a portable extension, this results in an invoker: + * + *
    + * InvokerBuilder<Invoker<MyService, String>> builder = ...;
    + * Invoker<MyService, String> invoker = builder.build();
    + * 
    + * + * In a build compatible extension, this results in an opaque token that later + * materializes as an invoker: + * + *
    + * InvokerBuilder<InvokerInfo> builder = ...;
    + * InvokerInfo invoker = builder.build();
    + * 
    + * + * To call the {@code hello()} method through this invoker, call + * {@code invoker.invoke(myService, new Object[] {"world"})}. + * The return value is {@code "Hello world!"}. + *

    + * An implementation of the direct invoker above is equivalent to the following class: + * + *

    + * class TheInvoker implements Invoker<MyService, String> {
    + *     String invoke(MyService instance, Object[] arguments) {
    + *         return instance.hello((String) arguments[0]);
    + *     }
    + * }
    + * 
    + * + * @param type of the target instance + * @param return type of the method + * @since 4.1 + * @see #invoke(Object, Object[]) + */ +public interface Invoker { + /** + * Invokes the target method of this invoker on given {@code instance}, passing given + * {@code arguments}. If the target method is {@code static}, the {@code instance} is ignored; + * by convention, it should be {@code null}. If the target method returns normally, this + * method returns its return value, unless the target method is declared {@code void}, + * in which case this method returns {@code null}. If the target method throws an exception, + * this method rethrows it directly. + *

    + * If some parameter of the target method declares a primitive type, the corresponding element of + * the {@code arguments} array must be of the corresponding wrapper type. No type conversions are + * performed, so if the parameter is declared {@code int}, the argument must be an {@code Integer} + * and may not be {@code Short} or {@code Long}. If the argument is {@code null}, the default value + * of the primitive type is used. Note that this does not apply to arrays of primitive types; + * if a parameter is declared {@code int[]}, the argument must be {@code int[]} and may not be + * {@code Integer[]}. + *

    + * If the target method is not {@code static} and {@code instance} is {@code null}, + * a {@link NullPointerException} is thrown. If the target method is not {@code static} and + * the {@code instance} is not assignable to the class of the bean to which the method belongs, + * a {@link ClassCastException} is thrown. + *

    + * If the target method declares no parameter, {@code arguments} are ignored. If the target method + * declares any parameter and {@code arguments} is {@code null}, {@link NullPointerException} is + * thrown. If the {@code arguments} array has fewer elements than the number of parameters of + * the target method, {@link ArrayIndexOutOfBoundsException} is thrown. If the {@code arguments} + * array has more elements than the number of parameters of the target method, the excess elements + * are ignored. If some of the {@code arguments} is not assignable to the declared type of + * the corresponding parameter of the target method, {@link ClassCastException} is thrown. + * + * TODO the previous 2 paragraphs refer to "assignability", which needs to be defined somewhere! + * + * @param instance the instance on which the target method is to be invoked, may only be {@code null} + * if the method is {@code static} + * @param arguments arguments to be supplied to the target method, may only be {@code null} + * if the method declares no parameter + * @return return value of the target method, or {@code null} if the method is declared {@code void} + */ + R invoke(T instance, Object[] arguments); // TODO throws Exception ? +} diff --git a/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java b/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java new file mode 100644 index 00000000..f8df0e84 --- /dev/null +++ b/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2022 Red Hat and others + * + * This program and the accompanying materials are made available under the + * Apache Software License 2.0 which is available at: + * https://www.apache.org/licenses/LICENSE-2.0. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +package jakarta.enterprise.invoke; + +/** + * Builder of {@link Invoker}s. + * + * @param type of outcome of this builder; always represents an {@code Invoker}, + * but does not necessarily have to be an {@code Invoker} instance directly + * @since 4.1 + */ +public interface InvokerBuilder { + /** + * Returns the built {@link Invoker} or some represention of it. Implementations are allowed + * but not required to reuse already built invokers for the same target method. + * + * @return the built invoker + */ + T build(); +} diff --git a/api/src/main/java/module-info.java b/api/src/main/java/module-info.java index 1aa23218..4239d4d3 100644 --- a/api/src/main/java/module-info.java +++ b/api/src/main/java/module-info.java @@ -10,6 +10,7 @@ exports jakarta.enterprise.inject.se; exports jakarta.enterprise.inject.spi; exports jakarta.enterprise.inject.spi.configurator; + exports jakarta.enterprise.invoke; exports jakarta.enterprise.util; requires transitive jakarta.annotation; From e613cd3511c958d78737d869da0909f7acfcbdac Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 18 Jul 2023 15:51:39 +0200 Subject: [PATCH 031/113] Initial proposal for method invokers: invoker builder features This commit introduces actual interesting features to the `InvokerBuilder`: - automatic lookup of the target instance and arguments - transformation of the target instance and arguments before invocation - transformation of the return value and thrown exception after invocation - wrapping the invoker into a custom piece of code for maximum flexibility --- .../jakarta/enterprise/invoke/Invoker.java | 4 + .../enterprise/invoke/InvokerBuilder.java | 345 +++++++++++++++++- 2 files changed, 347 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/invoke/Invoker.java b/api/src/main/java/jakarta/enterprise/invoke/Invoker.java index 2f06d6f3..ede8faa8 100644 --- a/api/src/main/java/jakarta/enterprise/invoke/Invoker.java +++ b/api/src/main/java/jakarta/enterprise/invoke/Invoker.java @@ -118,6 +118,10 @@ public interface Invoker { * * TODO the previous 2 paragraphs refer to "assignability", which needs to be defined somewhere! * + * TODO when the `InvokerBuilder` applies transformations, some of the requirements above + * are no longer strictly necessary, should reflect that in this text somehow (it is already + * mentioned in `InvokerBuilder`, but that likely isn't enough) + * * @param instance the instance on which the target method is to be invoked, may only be {@code null} * if the method is {@code static} * @param arguments arguments to be supplied to the target method, may only be {@code null} diff --git a/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java b/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java index f8df0e84..97342ef7 100644 --- a/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java +++ b/api/src/main/java/jakarta/enterprise/invoke/InvokerBuilder.java @@ -11,16 +11,357 @@ package jakarta.enterprise.invoke; /** - * Builder of {@link Invoker}s. + * Builder of {@link Invoker}s that allows configuring input lookups, input and output + * transformations, and invoker wrapping. The method for which the invoker is built is + * called the target method. If a lookup is configured, the corresponding input + * of the invoker is ignored and an instance is looked up from the CDI container before + * the target method is invoked. If a transformation is configured, the corresponding input + * or output of the invoker is modified in certain way before or after the target method + * is invoked. If a wrapper is configured, the invoker is passed to custom code for getting + * invoked. As a result, the built {@code Invoker} instance may have more complex behavior + * than just directly calling the target method. + *

    + * Transformations and wrapping are expressed by ordinary methods that must have + * a pre-defined signature, as described below. Such methods are called + * transformers and wrappers. + *

    + * Invokers may only be built during deployment. It is not possible to build new invokers + * at application runtime. + * + *

    Example

    + * + * Before describing in detail how lookups, transformers and wrappers work, let's take + * a look at an example. Say we have the following bean with a method: + * + *
    + * class MyService {
    + *     String hello(String name) {
    + *         return "Hello " + name + "!";
    + *     }
    + * }
    + * 
    + * + * And we want to build an invoker that looks up {@code MyService} from the CDI container, + * always passes the argument to {@code hello()} as all upper-case, and repeats the return + * value twice. To transform the argument, we can use the zero-parameter method + * {@code String.toUpperCase()}, and to transform the return value, we write a transformer + * as a simple {@code static} method: + * + *
    + * class Transformations {
    + *     static String repeatTwice(String str) {
    + *         return str + " " + str;
    + *     }
    + * }
    + * 
    + * + * Then, assuming we have obtained the {@code InvokerBuilder} for {@code MyService.hello()}, + * we can set up the lookup and transformations and build an invoker like so: + * + *
    + * builder.setInstanceLookup()
    + *        .setArgumentTransformer(0, String.class, "toUpperCase")
    + *        .setReturnValueTransformer(Transformations.class, "repeatTwice")
    + *        .build();
    + * 
    + * + * The resulting invoker will be equivalent to the following class: + *
    + * class TheInvoker implements Invoker<MyService, String> {
    + *     String invoke(MyService ignored, Object[] arguments) {
    + *         MyService instance = CDI.current().select(MyService.class).get();
    + *         String argument = (String) arguments[0];
    + *         String transformedArgument = argument.toUpperCase();
    + *         String result = instance.hello(transformedArgument);
    + *         String transformedResult = Transformations.repeatTwice(result);
    + *         return transformedResult;
    + *     }
    + * }
    + * 
    + * + * The caller of this invoker may pass {@code null} as the target instance, because + * the invoker will lookup the target instance on its own. Therefore, calling + * {@code invoker.invoke(null, new Object[] {"world"})} will return + * {@code "Hello WORLD! Hello WORLD!"}. + * + *

    General requirements

    + * + * To refer to a transformer or a wrapper, all methods in this builder accept: + * 1. the {@code Class} that that declares the method, and 2. the {@code String} name + * of the method. + *

    + * Transformers may be {@code static}, in which case they must be declared directly + * on the given class, or they may be instance methods, in which case they may be declared + * on the given class or inherited from any of its supertypes. + *

    + * It is possible to register only one transformer of each kind, or for each argument + * position in case of argument transformers. Attempting to register a second transformer + * of the same kind, or for the same argument position, leads to an exception. + *

    + * Wrappers must be {@code static} and must be declared directly on the given class. + * It is possible to register only one wrapper. Attempting to register a second wrapper + * leads to an exception. + *

    + * It is a deployment problem if no method with given name and valid signature is found, + * or if multiple methods with given name and different valid signatures are found. It is + * a deployment problem if a registered transformer or wrapper is not {@code public}. + *

    + * Transformers and wrappers may declare the {@code throws} clause. The declared exception + * types are ignored when searching for the method. + *

    + * For the purpose of the specification of transformers and wrappers below, the term + * any-type is recursively defined as: the {@code java.lang.Object} class type, + * or a type variable that has no bound, or a type variable whose first bound is + * any-type. + * + *

    Input lookups

    + * + * For the target instance and for each argument, it is possible to specify that the value + * passed to {@code Invoker.invoke()} should be ignored and a value should be looked up + * from the CDI container instead. + *

    + * For the target instance, a CDI lookup is performed with the required type equal to the bean + * class of the bean to which the target method belongs, and required qualifiers equal to the set + * of all qualifier annotations present on the bean class of the bean to which the target method + * belongs. When the target method is {@code static}, the target instance lookup is skipped. + *

    + * For an argument, a CDI lookup is performed with the required type equal to the type of + * the corresponding parameter of the target method, and required qualifiers equal to the set + * of all qualifier annotations present on the corresponding parameter of the target method. + *

    + * Implementations are required to resolve all lookups during deployment. It is a deployment + * problem if the lookup ends up unresolved or ambiguous. + *

    + * If the looked up bean is {@code @Dependent}, it is guaranteed that the instance will be + * destroyed after the target method is invoked but before the the invoker returns. The order + * in which the looked up {@code @Dependent} beans are destroyed is not specified. + *

    + * The order in which input lookups are performed in not specified and must not be relied upon. + * + *

    Input transformations

    + * + * The target method has 2 kinds of inputs: the target instance (unless the target method is + * {@code static}, in which case the target instance is ignored and should be {@code null} + * by convention) and arguments. These inputs correspond to the parameters of + * {@link Invoker#invoke(Object, Object[]) Invoker.invoke()}. + *

    + * Each input can be transformed by a transformer that has one of the following signatures, + * where {@code X} and {@code Y} are types: + * + *

      + *
    • {@code static X transform(Y value)}
    • + *
    • {@code static X transform(Y value, Consumer cleanup)}
    • + *
    • {@code X transform()} – in this case, {@code Y} is the type of the class that + * declares the transformer
    • + *
    + * + * An input transformer must produce a type that can be consumed by the target method. + * Specifically: when {@code X} is any-type, it is not type checked during deployment. + * Otherwise, it is a deployment problem if {@code X} is not assignable to the corresponding type + * in the declaration of the target method (that is the bean class in case of target instance + * transformers, or the corresponding parameter type in case of argument transformers). {@code Y} + * is not type checked during deployment, so that input transformers may consume arbitrary types. + * TODO this paragraph refers to "assignability", which needs to be defined somewhere! + *

    + * When a transformer is registered for given input, it is called before the target method is + * invoked, and the outcome of the transformer is used in the invocation instead of the original + * value passed to the invoker by its caller. + *

    + * If the transformer declares the {@code Consumer} parameter, and the execution + * of the transformer calls {@code Consumer.accept()} with some {@code Runnable}, it is + * guaranteed that the {@code Runnable} will be called after the target method is invoked but + * before the invoker returns. These {@code Runnable}s are called cleanup tasks. + * The order of cleanup task execution is not specified. Passing a {@code null} cleanup task + * to the {@code Consumer} is permitted, but has no effect. + *

    + * If an input transformation is configured for an input for which a lookup is also configured, + * the lookup is performed first and the transformation is applied to the looked up value. + * If the looked up bean for some input is {@code @Dependent}, it is guaranteed that all + * cleanup tasks registered by a transformer for that input are called before that looked up + * {@code @Dependent} bean is destroyed. + *

    + * The order in which input transformations are performed in not specified and must not + * be relied upon. + * + *

    Output transformations

    + * + * The target method has 2 kinds of outputs: the return value and the thrown exception. These + * outputs correspond to the return value of {@link Invoker#invoke(Object, Object[]) Invoker.invoke()} + * or its thrown exception, respectively. + *

    + * Each output can be transformed by a transformer that has one of the following signatures, + * where {@code X} and {@code Y} are types: + * + *

      + *
    • {@code static X transform(Y value)}
    • + *
    • {@code X transform()} – in this case, {@code Y} is the type of the class that + * declares the transformer
    • + *
    + * + * An output transformer must consume a type that can be produced by the target method. + * Specifically: when {@code Y} is any-type, it is not type checked during deployment. + * Otherwise, it is a deployment problem if {@code Y} is not assignable from the return type of + * the target method in case of return value transformers, or from {@code java.lang.Throwable} + * in case of exception transformers. {@code X} is not type checked during deployment, so that + * output transformers may produce arbitrary types. + * TODO this paragraph refers to "assignability", which needs to be defined somewhere! + *

    + * When a transformer is registered for given output, it is called after the target method + * is invoked, and the outcome of the transformer is passed back to the caller of the invoker + * instead of the original output produced by the target method. + *

    + * If the target method returns normally, any registered exception transformer is ignored; only + * the return value transformer is called. The return value transformer may throw, in which case + * the invoker will rethrow the exception. If the invoker is supposed to return normally, + * the return value transformer must return normally. + *

    + * Similarly, if the target method throws, any registered return value transformer is ignored; + * only the exception transformer is called. The exception transformer may return normally, + * in which case the invoker will return the return value of the exception transformer. If + * the invoker is supposed to throw an exception, the exception transformer must throw. + * TODO this requires that implementations catch java.lang.Throwable, which is perhaps a bit too much? + * maybe stick with java.lang.Exception? + * + *

    Invoker wrapping

    + * + * An invoker, possibly utilizing input lookups and input/output transformations, may be wrapped + * by a custom piece of code for maximum flexibility. A wrapper must have the following signature, + * where {@code X}, {@code Y} and {@code Z} are types: + * + *
      + *
    • {@code static Z wrap(X instance, Object[] arguments, Invoker invoker)}
    • + *
    + * + * A wrapper must operate on a matching instance type. Specifically: when {@code X} is + * any-type, it is not type checked during deployment. Otherwise, it is a deployment + * problem if {@code X} is not assignable from the class type of the bean class to which + * the target method belongs. {@code Y} and {@code Z} are not type checked during deployment. + *

    + * When a wrapper is registered, 2 invokers for the same method are created. The inner + * invoker applies all lookups and transformations, as described in previous sections, and + * invokes the target method. The outer invoker calls the wrapper with the passed + * instance and arguments and an instance of the inner invoker. The outer invoker is returned + * by this invoker builder. + *

    + * In other words, the outer invoker is equivalent to the following class: + * + *

    + * class InvokerWrapper implements Invoker<X, Z> {
    + *     Z invoke(X instance, Object[] arguments) {
    + *         // obtain the invoker as if no wrapper existed
    + *         Invoker<X, Y> invoker = obtainInvoker();
    + *         return SomeClass.wrap(instance, arguments, invoker);
    + *     }
    + * }
    + * 
    + * + * If the wrapper returns normally, the outer invoker returns its return value, unless the wrapper + * is declared {@code void}, in which case the outer invoker returns {@code null}. If the wrapper + * throws an exception, the outer invoker rethrows it directly. + *

    + * The wrapper is supposed to call the invoker it is passed, but does not necessarily have to. + * The wrapper may call the invoker multiple times. The wrapper must not use the invoker + * in any other way; specifically, it is forbidden to store the invoker instance anywhere + * or pass it to other methods that do not follow these rules. Doing so leads to non-portable + * behavior. + * + *

    Type checking

    + * + * An invoker created by this builder has relaxed type checking rules, when compared to + * the description in {@link Invoker#invoke(Object, Object[]) Invoker.invoke()}, depending + * on configured lookups, transformers and wrapper. Some types are checked during + * deployment, as described in previous sections. Other types are checked during invocation, + * at the very least due to the type checks performed implicitly by the JVM. The lookups, + * transformers and the wrapper must arrange the inputs and outputs so that when the method + * is eventually invoked, the rules described in + * {@link Invoker#invoke(Object, Object[]) Invoker.invoke()} all hold. + *

    + * TODO specify what happens when a transformer/wrapper declares a parameter of a primitive type + * but the actual value passed to the invoker is `null` (the transformer should get a zero value?) + * TODO specify what happens when a transformer/wrapper declares a parameter of some type + * but the actual value passed to the invoker is not assignable to it (CCE?) * * @param type of outcome of this builder; always represents an {@code Invoker}, * but does not necessarily have to be an {@code Invoker} instance directly * @since 4.1 */ +// TODO more kinds of transformations could be defined, expecially for argument handling +// TODO it would be possible to specify a sequence of transformations for each input/output, instead of just one public interface InvokerBuilder { + /** + * Enables lookup of the target instance. + * + * @return this builder + */ + InvokerBuilder setInstanceLookup(); + + /** + * Enables lookup of the argument on given {@code position}. + * + * @param position zero-based argument position for which lookup is enabled + * @return this builder + * @throws IllegalArgumentException if {@code position} is greather than or equal to + * the number of parameters declared by the target method + */ + InvokerBuilder setArgumentLookup(int position); + + /** + * Configures an input transformer for the target instance. + * + * @param clazz class that declares the transformer + * @param methodName transformer method name + * @return this builder + * @throws IllegalStateException if this method is called more than once + */ + InvokerBuilder setInstanceTransformer(Class clazz, String methodName); + + /** + * Configures an input transformer for the argument on given {@code position}. + * + * @param position zero-based argument position for which the input transformer is configured + * @param clazz class that declares the transformer + * @param methodName transformer method name + * @return this builder + * @throws IllegalArgumentException if {@code position} is greather than or equal to + * the number of parameters declared by the target method + * @throws IllegalStateException if this method is called more than once with the same {@code position} + */ + InvokerBuilder setArgumentTransformer(int position, Class clazz, String methodName); + + /** + * Configures an output transformer for the return value. + * + * @param clazz class that declares the transformer + * @param methodName transformer method name + * @return this builder + * @throws IllegalStateException if this method is called more than once + */ + InvokerBuilder setReturnValueTransformer(Class clazz, String methodName); + + /** + * Configures an output transformer for the thrown exception. + * + * @param clazz class that declares the transformer + * @param methodName transformer method name + * @return this builder + * @throws IllegalStateException if this method is called more than once + */ + InvokerBuilder setExceptionTransformer(Class clazz, String methodName); + + /** + * Configures an invoker wrapper. + * + * @param clazz class that declares the invoker wrapper + * @param methodName invoker wrapper method name + * @return this builder + * @throws IllegalStateException if this method is called more than once + */ + InvokerBuilder setInvocationWrapper(Class clazz, String methodName); + /** * Returns the built {@link Invoker} or some represention of it. Implementations are allowed - * but not required to reuse already built invokers for the same target method. + * but not required to reuse already built invokers for the same target method with the same + * configuration. * * @return the built invoker */ From 945c85c00de4edc20558cb129b95369df3af6353 Mon Sep 17 00:00:00 2001 From: Eclipse CDI Bot Date: Fri, 13 Oct 2023 11:08:53 +0000 Subject: [PATCH 032/113] [maven-release-plugin] prepare release 4.1.0.Alpha1 --- api/pom.xml | 4 ++-- el/pom.xml | 2 +- lang-model/pom.xml | 2 +- pom.xml | 4 ++-- spec/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 94405952..6030ebc6 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0.Alpha1 jakarta.enterprise.cdi-api @@ -216,7 +216,7 @@ scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git - HEAD + 4.1.0.Alpha1 diff --git a/el/pom.xml b/el/pom.xml index a724101c..718ae8f9 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0.Alpha1 jakarta.enterprise.cdi-el-api diff --git a/lang-model/pom.xml b/lang-model/pom.xml index 8a580e4d..696a9b90 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0.Alpha1 jakarta.enterprise.lang-model diff --git a/pom.xml b/pom.xml index f196ef19..d52d067f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent pom - 4.1.0-SNAPSHOT + 4.1.0.Alpha1 Parent module for CDI Specification @@ -26,7 +26,7 @@ scm:git:git://github.com/eclipse-ee4j/cdi.git scm:git:git@github.com:eclipse-ee4j/cdi.git https://github.com/eclipse-ee4j/cdi - HEAD + 4.1.0.Alpha1 diff --git a/spec/pom.xml b/spec/pom.xml index 02b9de90..bd681800 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0.Alpha1 jakarta.enterprise.cdi-spec-doc From 7aae05c007665b5e931610e00e46209749ccdfde Mon Sep 17 00:00:00 2001 From: Eclipse CDI Bot Date: Fri, 13 Oct 2023 11:08:55 +0000 Subject: [PATCH 033/113] [maven-release-plugin] prepare for next development iteration --- api/pom.xml | 4 ++-- el/pom.xml | 2 +- lang-model/pom.xml | 2 +- pom.xml | 4 ++-- spec/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 6030ebc6..94405952 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0.Alpha1 + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-api @@ -216,7 +216,7 @@ scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git - 4.1.0.Alpha1 + HEAD diff --git a/el/pom.xml b/el/pom.xml index 718ae8f9..a724101c 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0.Alpha1 + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-el-api diff --git a/lang-model/pom.xml b/lang-model/pom.xml index 696a9b90..8a580e4d 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0.Alpha1 + 4.1.0-SNAPSHOT jakarta.enterprise.lang-model diff --git a/pom.xml b/pom.xml index d52d067f..f196ef19 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent pom - 4.1.0.Alpha1 + 4.1.0-SNAPSHOT Parent module for CDI Specification @@ -26,7 +26,7 @@ scm:git:git://github.com/eclipse-ee4j/cdi.git scm:git:git@github.com:eclipse-ee4j/cdi.git https://github.com/eclipse-ee4j/cdi - 4.1.0.Alpha1 + HEAD diff --git a/spec/pom.xml b/spec/pom.xml index bd681800..02b9de90 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0.Alpha1 + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-spec-doc From 2c81adf3431dee5f542517ac06b93d6b6ab26c0a Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 25 Oct 2023 17:07:50 +0200 Subject: [PATCH 034/113] Allow setting CDI SPI implementations repeatedly The `CDI.setCDIProvider()` method has been documented to throw `IllegalStateException` on repeated calls since version 1.0, but since version 2.0, the implementation in fact didn't honor this documentation. Multiple implementations started to silently depend on repeated `setCDIProvider()` calls being allowed, especially for testing. We previously [1][2] fixed the implementation to actually do what it documents, planning to release the fix in CDI 4.1, but it turns out this is very inconvenient. Therefore, this commit makes repeated calls of `setCDIProvider()` officially allowed. For consistency, it also allows repeated calls of `BuildServicesResolver.setBuildServices()`. [1] https://github.com/jakartaee/cdi/commit/82ec5d71872212364a321cd3700d0ecadf9162d2 [2] https://github.com/jakartaee/cdi/commit/8ead70bdd135d277e277dfffc086b58dd92a1de3 --- .../build/compatible/spi/BuildServicesResolver.java | 7 +------ api/src/main/java/jakarta/enterprise/inject/spi/CDI.java | 9 ++------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java index 93380024..c8cda629 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildServicesResolver.java @@ -76,16 +76,11 @@ private static void discoverFactories() { * * @param instance a {@link BuildServices} instance that should be used, must not be {@code null} * @throws IllegalArgumentException if the provided argument is null - * @throws IllegalStateException if the {@link BuildServices} are already set */ public static void setBuildServices(BuildServices instance) { if (instance == null) { throw new IllegalArgumentException("BuildServices instance must not be null"); } - if (configuredBuildServices == null) { - configuredBuildServices = instance; - } else { - throw new IllegalStateException("BuildServices cannot be set repeatedly. Existing BuildServices are " + configuredBuildServices); - } + configuredBuildServices = instance; } } diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java index 1182a7ef..0a80f406 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/CDI.java @@ -116,19 +116,14 @@ private static boolean checkProvider(CDIProvider c) { *

    * * @param provider the provider to use - * @throws IllegalStateException if the {@link CDIProvider} is already set * @throws IllegalArgumentException if the provided argument is null */ public static void setCDIProvider(CDIProvider provider) { if (provider == null) { throw new IllegalArgumentException("CDIProvider must not be null"); } - if (configuredProvider == null) { - providerSetManually = true; - configuredProvider = provider; - } else { - throw new IllegalStateException("CDIProvider cannot be set repeatedly. Existing provider is " + configuredProvider); - } + providerSetManually = true; + configuredProvider = provider; } private static void findAllProviders() { From 3855bf0fb80f9d7cd9a65be943199d7eecbaf8e8 Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 7 Nov 2023 16:52:04 +0100 Subject: [PATCH 035/113] Relax the scope requirement for public fields Currently, the specification says that non-`@Dependent` beans may not have public fields. This is overly restrictive; in particular, implementing this rule precisely precludes passing the AtInject TCK, where `@Singleton` beans have public fields. This commit relaxes the requirement: all pseudo-scoped beans may have public fields; normal scoped beans may not. This makes most sense, it is what all existing implementations do (checked ArC, Weld and OpenWebBeans) and it is how the TCK is already written. --- spec/src/main/asciidoc/core/implementation.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/src/main/asciidoc/core/implementation.asciidoc b/spec/src/main/asciidoc/core/implementation.asciidoc index 54859419..efaaa5c7 100644 --- a/spec/src/main/asciidoc/core/implementation.asciidoc +++ b/spec/src/main/asciidoc/core/implementation.asciidoc @@ -20,8 +20,8 @@ A _managed bean_ is a bean that is implemented by a Java class. This class is called the _bean class_ of the managed bean. The basic lifecycle and semantics of managed beans are defined by the Managed Beans specification. - -If a managed bean has a non-static public field, it must have scope `@Dependent`. If a managed bean with a non-static public field declares any scope other than `@Dependent`, the container automatically detects the problem and treats it as a definition error. +If a managed bean has a non-static public field, its scope must be a <> (for example, `@Dependent` or `@Singleton`). +If a managed bean with a non-static public field declares a normal scope, the container automatically detects the problem and treats it as a definition error. If the managed bean class is a generic type, it must have scope `@Dependent`. If a managed bean with a parameterized bean class declares any scope other than `@Dependent`, the container automatically detects the problem and treats it as a definition error. From 2ad1af2612640ed23841b23b891b4f425af9bd1e Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Tue, 14 Nov 2023 12:44:20 +0100 Subject: [PATCH 036/113] small improvements and clarifications in Build Compatible Extensions and Language Model --- .../spi/BuildCompatibleExtension.java | 7 ++--- .../build/compatible/spi/Registration.java | 4 +-- .../compatible/spi/SyntheticBeanBuilder.java | 4 +-- .../compatible/spi/SyntheticComponents.java | 8 +++--- .../lang/model/declarations/ClassInfo.java | 27 ++++++++++--------- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildCompatibleExtension.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildCompatibleExtension.java index 2b5e5859..452b5436 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildCompatibleExtension.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/BuildCompatibleExtension.java @@ -49,9 +49,10 @@ * Build compatible extensions may be annotated {@link SkipIfPortableExtensionPresent @SkipIfPortableExtensionPresent} * when they are supposed to be ignored in presence of a given portable extension. *

    - * CDI implementations are not required to accept custom implementations of any {@code jakarta.enterprise.lang.model} - * or {@code jakarta.enterprise.inject.build.compatible.spi} interface. In other words, users may only use instances - * of these interfaces that they previously obtained from the corresponding API. If not, non-portable behavior results. + * CDI implementations are not required to accept custom implementations of any {@code jakarta.enterprise.lang.model}, + * {@code jakarta.enterprise.invoke} or {@code jakarta.enterprise.inject.build.compatible.spi} interface + * on the API boundary of build compatible extensions. In other words, users may only use instances of these + * interfaces that they previously obtained from the corresponding API. If not, non-portable behavior results. *

    * In build compatible extensions, implementations of {@link jakarta.enterprise.lang.model.AnnotationTarget} * only return annotations with the {@linkplain java.lang.annotation.RetentionPolicy#RUNTIME runtime} retention policy. diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Registration.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Registration.java index 219f33d1..8870ad6b 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Registration.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/Registration.java @@ -41,8 +41,8 @@ * If the {@code @Registration} method has a parameter of type {@code ObserverInfo}, the method is called once * for each observer whose observed event type is assignable to at least one expected type. *

    - * Note that interceptors are beans, and {@code InterceptorInfo} is a subtype of {@code BeanInfo}, so if the method - * has a parameter of type {@code BeanInfo}, it will be called for interceptors as well. + * Note that {@code InterceptorInfo} is a subtype of {@code BeanInfo}, so if the method has a parameter + * of type {@code BeanInfo}, it will be called for interceptors as well. *

    * If the {@code @Registration} method doesn't declare any parameter of one of these types, * or if it declares more than one, the container treats it as a definition error. diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java index 8afb2c94..8a74e44f 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticBeanBuilder.java @@ -100,7 +100,8 @@ public interface SyntheticBeanBuilder { /** * Sets the scope of this synthetic bean to given scope type. *

    - * If not called, this synthetic bean will be {@code @Dependent}. + * If not called, and if no stereotype is added that defines a scope, + * this synthetic bean will be {@code @Dependent}. * * @param scopeAnnotation the scope type, must not be {@code null} * @return this {@code SyntheticBeanBuilder} @@ -131,7 +132,6 @@ public interface SyntheticBeanBuilder { * that it is not enabled, which is equivalent to not registering it at all. *

    * If not called, this synthetic bean will not have a priority. - * If this synthetic bean is not an alternative, the priority is ignored. * * @param priority the priority of this synthetic bean * @return this {@code SyntheticBeanBuilder} diff --git a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticComponents.java b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticComponents.java index 949d17af..d6ecc44a 100644 --- a/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticComponents.java +++ b/api/src/main/java/jakarta/enterprise/inject/build/compatible/spi/SyntheticComponents.java @@ -20,14 +20,14 @@ public interface SyntheticComponents { /** * Creates a {@link SyntheticBeanBuilder} that allows configuring a new synthetic bean - * of given {@code beanClass}. The synthetic bean will be registered at the end of + * of given {@code implementationClass}. The synthetic bean will be registered at the end of * the {@link Synthesis @Synthesis} method. * - * @param beanClass the bean class of the new synthetic bean, must not be {@code null} - * @param the bean class of the new synthetic bean + * @param implementationClass the implementation class of the new synthetic bean, must not be {@code null} + * @param the implementation class of the new synthetic bean * @return a new {@link SyntheticBeanBuilder}, never {@code null} */ - SyntheticBeanBuilder addBean(Class beanClass); + SyntheticBeanBuilder addBean(Class implementationClass); /** * Creates a {@link SyntheticObserverBuilder} that allows configuring a new synthetic observer diff --git a/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/ClassInfo.java b/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/ClassInfo.java index 7155ae2f..4c0c16a0 100644 --- a/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/ClassInfo.java +++ b/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/ClassInfo.java @@ -61,34 +61,34 @@ public interface ClassInfo extends DeclarationInfo { List typeParameters(); /** - * Returns the {@linkplain Type type} of this class's superclass. Returns {@code null} if this class + * Returns the direct superclass {@linkplain Type type} of this class. Returns {@code null} if this class * does not have a superclass; that is, if this class is {@code java.lang.Object} or an interface. * - * @return the type of this class's superclass, or {@code null} if there's no superclass + * @return the direct superclass type of this class, or {@code null} if there's no superclass */ Type superClass(); /** - * Returns the {@linkplain ClassInfo declaration} of this class's superclass. Returns {@code null} if this class + * Returns the direct superclass of this class. Returns {@code null} if this class * does not have a superclass; that is, if this class is {@code java.lang.Object} or an interface. * - * @return the declaration of this class's superclass, or {@code null} if there's no superclass + * @return the direct superclass of this class, or {@code null} if there's no superclass */ ClassInfo superClassDeclaration(); /** - * Returns a list of {@linkplain Type types} of this class's direct superinterfaces. + * Returns a list of direct superinterface {@linkplain Type types} of this class. * Returns an empty list if this class has no direct superinterface. * - * @return immutable list of types of this class's direct superinterfaces, never {@code null} + * @return immutable list of direct superinterface types of this class, never {@code null} */ List superInterfaces(); /** - * Returns a list of {@linkplain ClassInfo declarations} of this class's direct superinterfaces. + * Returns a list of direct superinterfaces of this class. * Returns an empty list if this class has no direct superinterface. * - * @return immutable list of declarations of this class's direct superinterfaces, never {@code null} + * @return immutable list of direct superinterfaces of this class, never {@code null} */ List superInterfacesDeclarations(); @@ -169,8 +169,10 @@ public interface ClassInfo extends DeclarationInfo { /** * Returns a collection of {@linkplain MethodInfo methods} declared or implicitly declared * in this class and all its superclasses up to and excluding {@code java.lang.Object}, - * as well as all direct and indirect superinterfaces. If this class is an interface, - * only superinterfaces are considered. Methods implicitly declared in interfaces are omitted. + * as well as all direct and indirect superinterfaces. If this class is {@code java.lang.Object}, + * its methods are not excluded. If this class is an interface, only superinterfaces + * are considered. Implicitly declared methods corresponding to {@code java.lang.Object} + * methods in interfaces are omitted. *

    * If the collection of methods described above contains multiple methods with the same signature, * all such methods are returned. {@link MethodInfo#declaringClass() MethodInfo.declaringClass} @@ -186,8 +188,9 @@ public interface ClassInfo extends DeclarationInfo { /** * Returns a collection of {@linkplain FieldInfo fields} declared or implicitly declared * in this class and all its superclasses up to and excluding {@code java.lang.Object}, - * as well as all direct and indirect superinterfaces. If this class is an interface, - * only superinterfaces are considered. + * as well as all direct and indirect superinterfaces. If this class is {@code java.lang.Object}, + * its fields are not excluded. If this class is an interface, only superinterfaces + * are considered. *

    * If the collection of fields described above contains multiple fields with the same name, * all such fields are returned. {@link FieldInfo#declaringClass() FieldInfo.declaringClass} From 5472628a0cd6a353b71a53a7eead5dfaf80f657e Mon Sep 17 00:00:00 2001 From: Said BOUDJELDA Date: Sun, 26 Nov 2023 10:57:56 +0100 Subject: [PATCH 037/113] fix typo in javadoc --- .../jakarta/enterprise/lang/model/declarations/MethodInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/MethodInfo.java b/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/MethodInfo.java index d86b9f78..e896dff0 100644 --- a/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/MethodInfo.java +++ b/lang-model/src/main/java/jakarta/enterprise/lang/model/declarations/MethodInfo.java @@ -20,7 +20,7 @@ public interface MethodInfo extends DeclarationInfo { /** * Returns a list of {@linkplain ParameterInfo parameters} declared or implicitly declared on this method. * - * @return immutable list of {@linkplain ParameterInfo parameterts}, never {@code null} + * @return immutable list of {@linkplain ParameterInfo parameters}, never {@code null} */ List parameters(); From 6c020d376eb74196676352097cf0ff29dce21c0a Mon Sep 17 00:00:00 2001 From: Said BOUDJELDA Date: Sun, 26 Nov 2023 14:36:11 +0100 Subject: [PATCH 038/113] update copyright year --- lang-model/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang-model/pom.xml b/lang-model/pom.xml index 8a580e4d..dc3b9086 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -92,7 +92,7 @@

    cdi-dev@eclipse.org.
    -Copyright © 2018,2020 Eclipse Foundation.
    +Copyright © 2018,2023 Eclipse Foundation.
    Use is subject to license terms.]]>
    From 3e619521ce03e40cb01936fde32d16b8ffd8a470 Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Tue, 28 Nov 2023 15:08:22 +0100 Subject: [PATCH 039/113] Update CI setup - add JDK 21, bump versions on actions --- .github/workflows/ci-actions.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index 0f29c5a6..31acc335 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -2,7 +2,7 @@ name: Jakarta Contexts and Dependency Injection CI on: pull_request: - branches: [ master ] + branches: [ main ] jobs: build: @@ -11,12 +11,13 @@ jobs: strategy: fail-fast: false matrix: - java: [ '11', '17' ] + java: [ '11', '17', '21' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4.1.1 - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v1.4.3 + uses: actions/setup-java@v3.13.0 with: + distribution: 'temurin' java-version: ${{ matrix.java }} - name: "Maven install" run: | From 8c6b2d32308dfffa232ed7479798eec1620740ef Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Wed, 24 May 2023 17:14:06 +0200 Subject: [PATCH 040/113] Specify @Priority on producers --- spec/src/main/asciidoc/core/injectionandresolution.asciidoc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc index e744e274..9ef8c67a 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc @@ -45,9 +45,13 @@ An alternative is not available for injection, lookup or name resolution to clas An alternative may be given a priority for the application: * by placing the `@Priority` annotation on the bean class of a managed bean, or +* by placing the `@Priority` annotation on the producer method, field or resource, or * by placing the `@Priority` annotation on the bean class that declares the producer method, field or resource, or * by placing the `@Priority` annotation on a stereotype that is applied to the bean class, producer method or producer field. +To determine the priority of a producer method or field, the `@Priority` annotation on the producer method or field is considered first. +If the producer method or field does not declare the `@Priority` annotation, the `@Priority` annotation declared on the bean class is used. + [[enablement]] ==== Enabled and disabled beans From 17864f3a567af30425e3669110487d03bfb2790d Mon Sep 17 00:00:00 2001 From: Ladislav Thon Date: Fri, 10 Nov 2023 15:31:22 +0100 Subject: [PATCH 041/113] WIP clarification, will be squashed --- .../asciidoc/core/injectionandresolution.asciidoc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc index 9ef8c67a..6b8560d9 100644 --- a/spec/src/main/asciidoc/core/injectionandresolution.asciidoc +++ b/spec/src/main/asciidoc/core/injectionandresolution.asciidoc @@ -49,9 +49,6 @@ An alternative may be given a priority for the application: * by placing the `@Priority` annotation on the bean class that declares the producer method, field or resource, or * by placing the `@Priority` annotation on a stereotype that is applied to the bean class, producer method or producer field. -To determine the priority of a producer method or field, the `@Priority` annotation on the producer method or field is considered first. -If the producer method or field does not declare the `@Priority` annotation, the `@Priority` annotation declared on the bean class is used. - [[enablement]] ==== Enabled and disabled beans @@ -115,9 +112,18 @@ The container eliminates all eligible beans that are not alternatives, except fo If: * there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable. -* all the beans left are alternatives with a priority, or producer methods or fields of beans that are alternatives with a priority, then the container will determine the highest priority value, and eliminate all beans, except for alternatives with the highest priority and producer methods and fields of alternatives with the highest priority value. +* all the beans left are alternatives with a priority, or producer methods or fields of beans that are alternatives with a priority, then the container will determine the highest priority value and eliminate all beans, except for: ++ +-- +** alternatives with the highest priority value, +** producer methods and fields of alternatives, where either the producer method or field has the highest priority value, or the declaring alternative has the highest priority value. +-- ++ If there is exactly one bean remaining, the container will select this bean, and the ambiguous dependency is called resolvable. +For the purpose of determining the priority of any producer method or field during ambiguity resolution, the priority of the producer method or field is considered first. +If the producer method or field does not have a priority, the priority of the managed bean that declares the producer method or field is used. + The container must validate all injection points of all enabled beans, all observer methods and all disposer methods when the application is initialized to ensure that there are no unsatisfied or unresolvable ambiguous dependencies. If an unsatisfied or unresolvable ambiguous dependency exists, the container automatically detects the problem and treats it as a deployment problem. From 38265cb1d7d2560c2e2202935e01fd9fa1e9047d Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Tue, 28 Nov 2023 14:01:40 +0100 Subject: [PATCH 042/113] Remove mention of context activation from AfterDeploymentValidation event --- spec/src/main/asciidoc/core/spi_full.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/src/main/asciidoc/core/spi_full.asciidoc b/spec/src/main/asciidoc/core/spi_full.asciidoc index 6d5e04b2..ff6d3b27 100644 --- a/spec/src/main/asciidoc/core/spi_full.asciidoc +++ b/spec/src/main/asciidoc/core/spi_full.asciidoc @@ -1081,7 +1081,7 @@ With `ObserverMethodConfigurator` you can perform the following operations: ==== `AfterDeploymentValidation` event -The container must fire an event after it has validated that there are no deployment problems and before creating contexts or processing requests. +The container must fire an event after it has validated that there are no deployment problems and before processing requests. The event object must be of type `jakarta.enterprise.inject.spi.AfterDeploymentValidation`: From d9e86564fcfc98608db6b6ce12ed7b9de1aec7bb Mon Sep 17 00:00:00 2001 From: StepSecurity Bot Date: Wed, 29 Nov 2023 17:42:32 -0800 Subject: [PATCH 043/113] [StepSecurity] Apply security best practices (#678) resolve: #677 Signed-off-by: StepSecurity Bot Co-authored-by: Scott M Stark --- .github/dependabot.yml | 16 ++++++++++++++++ .github/workflows/ci-actions.yml | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..a3c4da46 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + + - package-ecosystem: bundler + directory: /docs + schedule: + interval: daily + + - package-ecosystem: maven + directory: / + schedule: + interval: daily diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index 31acc335..5ae7b6fb 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -4,6 +4,9 @@ on: pull_request: branches: [ main ] +permissions: + contents: read + jobs: build: name: "Build CDI - JDK ${{matrix.java}}" From 5240957be158cf5c8c9570ca506056e609ca6f8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:10:29 -0600 Subject: [PATCH 044/113] Bump actions/setup-java from 3.13.0 to 4.0.0 (#711) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.13.0 to 4.0.0. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3.13.0...v4.0.0) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index 5ae7b6fb..45aa1805 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4.1.1 - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v3.13.0 + uses: actions/setup-java@v4.0.0 with: distribution: 'temurin' java-version: ${{ matrix.java }} From ee5f6b7142fa2490efa0219ae033b59c2c5130e4 Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Thu, 30 Nov 2023 11:11:52 -0600 Subject: [PATCH 045/113] - Cleanup in prep for the 4.1.0-M1 release (#710) - Cleanup in prep for the 4.1.0-M1 release + Update to use latest parent pom for common plugin versions and sbom generation + Use parent pom version where appropriate + Update other plugin versions + Restore source attachment which was lost somewhere + Update copyright dates + Externalize the spec date, revision and status + Include the api version and build timestamp in the javadoc overview page + Fix the javadoc errors on Java SE 17, 21 + Add dependenbot updates for el and bundle plugin + Update interceptors to 2.2.0-M1 --------- Signed-off-by: Scott M Stark --- api/pom.xml | 34 +++++++++++++++---- api/src/main/javadoc/overview.html | 1 + el/pom.xml | 16 +++++++-- lang-model/pom.xml | 14 ++++++-- pom.xml | 8 ++--- spec/pom.xml | 30 +++++++--------- spec/src/main/asciidoc/cdi-spec.asciidoc | 6 ++-- spec/src/main/asciidoc/license-asl2.asciidoc | 2 +- spec/src/main/asciidoc/license-final.asciidoc | 2 +- 9 files changed, 74 insertions(+), 39 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 94405952..fc018c0d 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -124,10 +124,11 @@ - 2.1.0 + 3.0.0-M1 2.0.1 - 5.0.0 - 2.1.0 + 5.0.1 + 2.2.0-M1 + MMMM dd, yyyy @@ -137,7 +138,7 @@ org.testng testng - 6.8.8 + 7.7.0 @@ -274,6 +275,14 @@ src/main/resources + + src/main/javadoc + true + + overview.html + + ${project.build.directory}/javadoc + @@ -323,13 +332,24 @@ org.apache.maven.plugins maven-jar-plugin - ${maven-jar-plugin.version} ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + org.apache.maven.plugins maven-surefire-plugin @@ -370,18 +390,18 @@ org.apache.maven.plugins maven-javadoc-plugin - ${maven-javadoc-plugin.version} true Jakarta Contexts and Dependency Injection API Jakarta Contexts and Dependency Injection API false + ${project.build.directory}/javadoc/overview.html Jakarta Contexts and Dependency Injection API
    Jakarta Contexts and Dependency Injection ${project.version}]]>
    cdi-dev@eclipse.org.
    -Copyright © 2018,2022 Eclipse Foundation.
    +Copyright © 2018,2023 Eclipse Foundation.
    Use is subject to license terms.]]>
    diff --git a/api/src/main/javadoc/overview.html b/api/src/main/javadoc/overview.html index 35ee3a4b..6c0319bb 100644 --- a/api/src/main/javadoc/overview.html +++ b/api/src/main/javadoc/overview.html @@ -1,6 +1,7 @@ +Version: ${project.version}, ${maven.build.timestamp}

    Contexts and Dependency Injection (CDI) defines a set of complementary services that help improve the structure of application diff --git a/el/pom.xml b/el/pom.xml index a724101c..89d31555 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -106,17 +106,27 @@ org.apache.maven.plugins maven-jar-plugin - ${maven-jar-plugin.version} ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + org.apache.maven.plugins maven-javadoc-plugin - ${maven-javadoc-plugin.version} true Jakarta CDI EL integration API @@ -126,7 +136,7 @@ cdi-dev@eclipse.org.
    -Copyright © 2018,2020 Eclipse Foundation.
    +Copyright © 2018,2023 Eclipse Foundation.
    Use is subject to license terms.]]>
    diff --git a/lang-model/pom.xml b/lang-model/pom.xml index dc3b9086..dc905c86 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -72,17 +72,27 @@ org.apache.maven.plugins maven-jar-plugin - ${maven-jar-plugin.version} ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + org.apache.maven.plugins maven-javadoc-plugin - ${maven-javadoc-plugin.version} true Jakarta CDI Language Model diff --git a/pom.xml b/pom.xml index f196ef19..f09700c8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.eclipse.ee4j project - 1.0.6 + 1.0.9 jakarta.enterprise @@ -44,11 +44,9 @@ 11 - 5.1.2 + 5.1.9 3.8.1 - 3.2.0 - 3.3.0 - 3.0.0-M5 + 3.2.2 https://jakarta.oss.sonatype.org/ ${sonatypeOssDistMgmtNexusUrl}content/repositories/staging/ diff --git a/spec/pom.xml b/spec/pom.xml index 02b9de90..a00c29e2 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -14,13 +14,14 @@ CDI Specification documentation - 2.2.1 - 2.5.2 - 1.6.0 + 2.2.4 + 2.5.10 + 2.3.9 asl2 - Draft + Draft(M1) + 4.1 MMMM dd, yyyy ${maven.build.timestamp} @@ -67,12 +68,13 @@ + tck ${project.build.directory}/generated-docs/cdi-spec.html - 2.0.3.Final - https://repo1.maven.org/maven2/org/jboss/cdi/tck/cdi-tck-impl/${tck.version}/cdi-tck-impl-${tck.version}-audit-cdi.xml - https://repo1.maven.org/maven2/org/jboss/cdi/tck/cdi-tck-impl/${tck.version}/cdi-tck-impl-${tck.version}-coverage-cdi.html + 4.0.12 + https://repo1.maven.org/maven2/jakarta/enterprise/cdi-tck-core-impl/${tck.version}/cdi-tck-core-impl-${tck.version}-audit-cdi.xml + https://repo1.maven.org/maven2/jakarta/enterprise/cdi-tck-core-impl/${tck.version}/cdi-tck-impl-${tck.version}-coverage-cdi.html @@ -87,7 +89,7 @@ maven-resources-plugin - 2.7 + 3.3.1 copy-resources @@ -109,7 +111,7 @@ org.codehaus.mojo exec-maven-plugin - 1.3.2 + 3.1.1 package @@ -199,20 +201,14 @@ cdi-spec.asciidoc ${license-file} + ${revnumber} ${revremark} + ${revisiondate} images coderay - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0-M1 - - true - - diff --git a/spec/src/main/asciidoc/cdi-spec.asciidoc b/spec/src/main/asciidoc/cdi-spec.asciidoc index 9f977403..6f5be6c1 100644 --- a/spec/src/main/asciidoc/cdi-spec.asciidoc +++ b/spec/src/main/asciidoc/cdi-spec.asciidoc @@ -1,9 +1,9 @@ = Jakarta Contexts and Dependency Injection :author: Jakarta Contexts and Dependency Injection Specification Project :email: cdi-dev@eclipse.org -:revnumber: 4.1 -:revdate: May 24 2023 -:revremark: Draft +:revnumber: {revnumber} +:revdate: {revdate} +:revremark: {revremark} :version-label!: :sectanchors: :doctype: book diff --git a/spec/src/main/asciidoc/license-asl2.asciidoc b/spec/src/main/asciidoc/license-asl2.asciidoc index c01ed412..684bb5e5 100644 --- a/spec/src/main/asciidoc/license-asl2.asciidoc +++ b/spec/src/main/asciidoc/license-asl2.asciidoc @@ -11,7 +11,7 @@ Specification Lead: Red Hat, Inc. Release: {revdate} -Copyright 2017,2022 Red Hat, Inc. +Copyright 2017,2023 Red Hat, Inc. 100 East Davie Street, Raleigh, NC 27601, U.S.A. Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/spec/src/main/asciidoc/license-final.asciidoc b/spec/src/main/asciidoc/license-final.asciidoc index affd1c0d..ba45debf 100644 --- a/spec/src/main/asciidoc/license-final.asciidoc +++ b/spec/src/main/asciidoc/license-final.asciidoc @@ -14,7 +14,7 @@ Release: {revdate} === Final license -Copyright 2018,2022 Eclipse Foundation. +Copyright 2018,2023 Eclipse Foundation. This specification is licensed under the Eclipse Foundation Specification License 1.0; this specification is based on material that is licensed under the Apache License, version 2.0. From 544de85e8650b23259cf69caca0b8f262e4c9e13 Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Thu, 30 Nov 2023 11:29:10 -0600 Subject: [PATCH 046/113] Updates for deprecation of the Managed Beans specification, #679 (#709) * Updates for deprecation of the Managed Beans specification, #679 --------- Signed-off-by: Scott M Stark --- spec/src/main/asciidoc/architecture.asciidoc | 16 +--------------- .../main/asciidoc/core/implementation.asciidoc | 1 - spec/src/main/asciidoc/core/lifecycle.asciidoc | 4 ++-- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/spec/src/main/asciidoc/architecture.asciidoc b/spec/src/main/asciidoc/architecture.asciidoc index 976f9747..31985d73 100644 --- a/spec/src/main/asciidoc/architecture.asciidoc +++ b/spec/src/main/asciidoc/architecture.asciidoc @@ -15,7 +15,7 @@ This specification defines a powerful set of complementary services that help to The services defined by this specification allow objects to be bound to lifecycle contexts, to be injected, to be associated with interceptors and decorators, and to interact in a loosely coupled fashion by firing and observing events. -Various kinds of objects are injectable, including Jakarta Enterprise Bean 3 session beans, managed beans and Jakarta EE resources. +Various kinds of objects are injectable, including Jakarta Enterprise Bean 3 session beans, and Jakarta EE resources. We refer to these objects in general terms as _beans_ and to instances of beans that belong to contexts as _contextual instances_. Contextual instances may be injected into other objects by the dependency injection service. @@ -84,20 +84,6 @@ Message-driven and entity beans are by nature non-contextual objects and may not The container performs dependency injection on all session and message-driven bean instances, even those which are not contextual instances. -==== Relationship to managed beans - -The Managed Beans specification defines the basic programming model for application components managed by the Jakarta EE container. - -As defined by this specification, most Java classes, including all Jakarta Enterprise Beans, are managed beans. - -This specification defines contextual lifecycle management and dependency injection as generic services applicable to all managed beans. - -Any managed bean instance obtained via the dependency injection service is a contextual instance. It is bound to a lifecycle context and is available to other objects that execute in that context. -The container automatically creates the instance when it is needed by a client. -When the context ends, the container automatically destroys the instance. - -The container performs dependency injection on all managed bean instances, even those which are not contextual instances. - ==== Relationship to Jakarta Dependency Injection The Jakarta Dependency Injection specification defines a set of annotations for the declaring injected fields, methods and constructors of a bean. diff --git a/spec/src/main/asciidoc/core/implementation.asciidoc b/spec/src/main/asciidoc/core/implementation.asciidoc index efaaa5c7..c8495888 100644 --- a/spec/src/main/asciidoc/core/implementation.asciidoc +++ b/spec/src/main/asciidoc/core/implementation.asciidoc @@ -18,7 +18,6 @@ Portable extensions and build compatible extensions may provide other kinds of b A _managed bean_ is a bean that is implemented by a Java class. This class is called the _bean class_ of the managed bean. -The basic lifecycle and semantics of managed beans are defined by the Managed Beans specification. If a managed bean has a non-static public field, its scope must be a <> (for example, `@Dependent` or `@Singleton`). If a managed bean with a non-static public field declares a normal scope, the container automatically detects the problem and treats it as a definition error. diff --git a/spec/src/main/asciidoc/core/lifecycle.asciidoc b/spec/src/main/asciidoc/core/lifecycle.asciidoc index 917cf051..eabd5dd9 100644 --- a/spec/src/main/asciidoc/core/lifecycle.asciidoc +++ b/spec/src/main/asciidoc/core/lifecycle.asciidoc @@ -109,9 +109,9 @@ The actual mechanics of bean creation and destruction varies according to what k ==== Lifecycle of managed beans -When the `create()` method of the `Bean` object that represents a managed bean is called, the container obtains an instance of the bean, as defined by the Managed Beans specification, calling the bean constructor as defined by <>, and performing dependency injection as defined in <>. +When the `create()` method of the `Bean` object that represents a managed bean is called, the container obtains an instance of the bean, calling the bean constructor as defined by <>, and performing dependency injection as defined in <>. -When the `destroy()` method is called, the container destroys the instance, as defined by the Managed Beans specification, and any dependent objects, as defined in <>. +When the `destroy()` method is called, the container destroys the instance, and any dependent objects, as defined in <>. From d3272a42489be1a3a6a55c6f78c71f7f215db286 Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Thu, 30 Nov 2023 11:33:17 -0600 Subject: [PATCH 047/113] Updates for Jakarta Bean Validation to Jakarta Validation name change, #680 (#708) * Updates for Jakarta Bean Validation to Jakarta Validation name change, #680 * Update spec/src/main/asciidoc/architecture.asciidoc Co-authored-by: Ladislav Thon --------- Signed-off-by: Scott M Stark Co-authored-by: Ladislav Thon --- spec/src/main/asciidoc/architecture.asciidoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/src/main/asciidoc/architecture.asciidoc b/spec/src/main/asciidoc/architecture.asciidoc index 31985d73..66c36c33 100644 --- a/spec/src/main/asciidoc/architecture.asciidoc +++ b/spec/src/main/asciidoc/architecture.asciidoc @@ -100,13 +100,13 @@ Jakarta Server Faces is a web-tier presentation framework that provides a compon This specification allows any bean to be assigned a name. Thus, a Jakarta Server Faces application may take advantage of the sophisticated context and dependency injection model defined by this specification. -==== Relationship to Jakarta Bean Validation +==== Relationship to Jakarta Validation -Jakarta Bean Validation provides a unified way of declaring and defining constraints on an object model, defines a runtime engine to validate objects and provides method validation. +Jakarta Validation provides a unified way of declaring and defining constraints on an object model, defines a runtime engine to validate objects and provides method validation. -The Jakarta Bean Validation specification defines beans for Bean Validation managed objects including `Validator` and `ValidatorFactory`. -A number of Bean Validation managed instances, including `ConstraintValidator` s can take advantage of dependency injection. -Bean Validation also provides support for method parameter validation on any bean. +The Jakarta Validation specification defines beans for certain managed objects, including `Validator` and `ValidatorFactory`. +A number of Jakarta Validation managed instances, including ``ConstraintValidator``s, can take advantage of dependency injection. +Jakarta Validation also provides support for method parameter validation on any bean. === Introductory examples From 37346f5f1b9f03e0af1df5d83527a4e97824d6e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:49:03 -0600 Subject: [PATCH 048/113] Bump nokogiri from 1.13.6 to 1.14.3 in /docs (#662) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.6 to 1.14.3. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.6...v1.14.3) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 2cc62c7b..7754759d 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -229,9 +229,9 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.15.0) multipart-post (2.1.1) - nokogiri (1.13.6-x86_64-darwin) + nokogiri (1.14.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.13.6-x86_64-linux) + nokogiri (1.14.3-x86_64-linux) racc (~> 1.4) octokit (4.22.0) faraday (>= 0.9) @@ -239,7 +239,7 @@ GEM pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (4.0.6) - racc (1.6.0) + racc (1.6.2) rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) From 407667216e5d8816ba98c4b767b3ac91d6d6d770 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:49:18 -0600 Subject: [PATCH 049/113] Bump webrick from 1.7.0 to 1.8.1 in /docs (#716) Bumps [webrick](https://github.com/ruby/webrick) from 1.7.0 to 1.8.1. - [Release notes](https://github.com/ruby/webrick/releases) - [Commits](https://github.com/ruby/webrick/compare/v1.7.0...v1.8.1) --- updated-dependencies: - dependency-name: webrick dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile | 2 +- docs/Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile b/docs/Gemfile index b96ce0af..d490aa01 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -28,4 +28,4 @@ end gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] -gem "webrick", "~> 1.7" +gem "webrick", "~> 1.8" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 7754759d..4dde5cc3 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -271,7 +271,7 @@ GEM unf_ext unf_ext (0.0.8) unicode-display_width (1.8.0) - webrick (1.7.0) + webrick (1.8.1) zeitwerk (2.5.3) PLATFORMS @@ -285,7 +285,7 @@ DEPENDENCIES tzinfo (~> 1.2) tzinfo-data wdm (~> 0.1.1) - webrick (~> 1.7) + webrick (~> 1.8) BUNDLED WITH 2.3.5 From 873aa7f64d374653919913fae57a1edf7e779965 Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Thu, 30 Nov 2023 11:53:33 -0600 Subject: [PATCH 050/113] + Change Jakarta Server Faces to Jakarta Faces, #681 (#724) Signed-off-by: Scott M Stark --- spec/src/main/asciidoc/architecture.asciidoc | 20 ++++++++++---------- spec/src/main/asciidoc/dictionary.txt | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/spec/src/main/asciidoc/architecture.asciidoc b/spec/src/main/asciidoc/architecture.asciidoc index 66c36c33..f9a5fc09 100644 --- a/spec/src/main/asciidoc/architecture.asciidoc +++ b/spec/src/main/asciidoc/architecture.asciidoc @@ -6,7 +6,7 @@ This specification defines a powerful set of complementary services that help to * A well-defined lifecycle for stateful objects bound to _lifecycle contexts_, where the set of contexts is extensible * A sophisticated, typesafe _dependency injection_ mechanism, including the ability to select dependencies at either development or deployment time, without verbose configuration * Support for Jakarta EE modularity and the Jakarta EE component architecture - the modular structure of a Jakarta EE application is taken into account when resolving dependencies between Jakarta EE components -* Integration with the Jakarta Unified Expression Language (EL), allowing any contextual object to be used directly within a Jakarta Server Faces or JSP page +* Integration with the Jakarta Unified Expression Language (EL), allowing any contextual object to be used directly within a Jakarta Faces or JSP page * The ability to _decorate_ injected objects (only in {cdi_full} environment) * The ability to associate interceptors to objects via typesafe _interceptor bindings_ * An _event notification_ model @@ -22,7 +22,7 @@ Contextual instances may be injected into other objects by the dependency inject To take advantage of these facilities, the developer provides additional bean-level metadata in the form of Java annotations and application-level metadata in the form of an XML descriptor. The use of these services significantly simplifies the task of creating Jakarta EE applications by integrating the Jakarta EE web tier with Jakarta EE enterprise services. -In particular, Jakarta Enterprise Bean components may be used as Jakarta Server Faces managed beans, thus integrating the programming models of Jakarta Enterprise Bean and Jakarta Server Faces. +In particular, Jakarta Enterprise Bean components may be used as Jakarta Faces managed beans, thus integrating the programming models of Jakarta Enterprise Bean and Jakarta Faces. It's even possible to integrate with third-party frameworks. A portable extension may provide objects to be injected or obtain contextual instances using the dependency injection service. The framework may even raise and observe events using the event notification service. @@ -94,11 +94,11 @@ The dependency injection service makes use of these annotations. The Jakarta Interceptors specification defines the basic programming model and semantics for interceptors. This specification enhances that model by providing the ability to associate interceptors with beans using typesafe interceptor bindings. -==== Relationship to Jakarta Server Faces +==== Relationship to Jakarta Faces -Jakarta Server Faces is a web-tier presentation framework that provides a component model for graphical user interface components and an event-driven interaction model that binds user interface components to objects accessible via Unified EL. +Jakarta Faces is a web-tier presentation framework that provides a component model for graphical user interface components and an event-driven interaction model that binds user interface components to objects accessible via Unified EL. -This specification allows any bean to be assigned a name. Thus, a Jakarta Server Faces application may take advantage of the sophisticated context and dependency injection model defined by this specification. +This specification allows any bean to be assigned a name. Thus, a Jakarta Faces application may take advantage of the sophisticated context and dependency injection model defined by this specification. ==== Relationship to Jakarta Validation @@ -112,9 +112,9 @@ Jakarta Validation also provides support for method parameter validation on any The following examples demonstrate the use of lifecycle contexts and dependency injection. -==== Jakarta Server Faces example +==== Jakarta Faces example -The following Jakarta Server Faces page defines a login prompt for a web application: +The following Jakarta Faces page defines a login prompt for a web application: [source, xml] ---- @@ -134,7 +134,7 @@ The following Jakarta Server Faces page defines a login prompt for a web applica The Jakarta EL expressions in this page refer to beans named `credentials` and `login`. -The `Credentials` bean has a lifecycle that is bound to the Jakarta Server Faces request: +The `Credentials` bean has a lifecycle that is bound to the Jakarta Faces request: [source, java] ---- @@ -261,8 +261,8 @@ public class DocumentEditor { The `@Documents` annotation is another application-defined qualifier type. The use of distinct qualifier types enables the container to distinguish which Jakarta Persistence persistence unit is required. -When the login form is submitted, Jakarta Server Faces assigns the entered username and password to an instance of the `Credentials` bean that is automatically instantiated by the container. -Next, Jakarta Server Faces calls the `login()` method of an instance of `Login` that is automatically instantiated by the container. +When the login form is submitted, Jakarta Faces assigns the entered username and password to an instance of the `Credentials` bean that is automatically instantiated by the container. +Next, Jakarta Faces calls the `login()` method of an instance of `Login` that is automatically instantiated by the container. This instance continues to exist for and be available to other requests in the same HTTP session, and provides the `User` object representing the current user to any other bean that requires it (for example, `DocumentEditor`). If the producer method is called before the `login()` method initializes the user object, it throws a `NotLoggedInException`. ==== Jakarta Enterprise Bean example diff --git a/spec/src/main/asciidoc/dictionary.txt b/spec/src/main/asciidoc/dictionary.txt index 5b6eab00..0154ced7 100644 --- a/spec/src/main/asciidoc/dictionary.txt +++ b/spec/src/main/asciidoc/dictionary.txt @@ -36,7 +36,7 @@ JDK JMS JNDI JPA -Jakarta Server Faces +Jakarta Faces JSP JSR JTA From 703a7a2764afdc3e0600b68a9548760ec85cc20a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:54:54 -0600 Subject: [PATCH 051/113] Bump github-pages from 219 to 225 in /docs (#718) Bumps [github-pages](https://github.com/github/pages-gem) from 219 to 225. - [Release notes](https://github.com/github/pages-gem/releases) - [Commits](https://github.com/github/pages-gem/compare/v219...v225) --- updated-dependencies: - dependency-name: github-pages dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile | 2 +- docs/Gemfile.lock | 116 ++++++++++++++++++++-------------------------- 2 files changed, 50 insertions(+), 68 deletions(-) diff --git a/docs/Gemfile b/docs/Gemfile index d490aa01..6742ea5c 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -12,7 +12,7 @@ gem "jekyll", "~> 3.9.0" gem "minima", "~> 2.5" # If you want to use GitHub Pages, remove the "gem "jekyll"" above and # uncomment the line below. To upgrade, run `bundle update github-pages`. -gem "github-pages", "~> 219", group: :jekyll_plugins +gem "github-pages", "~> 225", group: :jekyll_plugins # If you have any plugins, put them here! group :jekyll_plugins do end diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 4dde5cc3..a3c431cc 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,67 +1,50 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.4.4) + activesupport (6.0.6.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.5) + public_suffix (>= 2.0.2, < 6.0) + base64 (0.2.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concurrent-ruby (1.1.9) - dnsruby (1.61.9) - simpleidn (~> 0.1) + commonmarker (0.23.10) + concurrent-ruby (1.2.2) + dnsruby (1.70.0) + simpleidn (~> 0.2.1) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.15.0) + ethon (0.16.0) ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.8.1) - faraday (1.9.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) + execjs (2.9.1) + faraday (2.7.12) + base64 + faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.3) - multipart-post (>= 1.2, < 3) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - ffi (1.15.5) + faraday-net_http (3.0.2) + ffi (1.16.3) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (219) - github-pages-health-check (= 1.17.7) + github-pages (225) + github-pages-health-check (= 1.17.9) jekyll (= 3.9.0) jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.6) + jekyll-commonmark-ghpages (= 0.2.0) jekyll-default-layout (= 0.1.4) jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) jekyll-mentions (= 1.6.0) jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) @@ -70,7 +53,7 @@ GEM jekyll-relative-links (= 0.6.1) jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.7.1) + jekyll-seo-tag (= 2.8.0) jekyll-sitemap (= 1.4.0) jekyll-swiss (= 1.0.0) jekyll-theme-architect (= 0.2.0) @@ -93,16 +76,16 @@ GEM liquid (= 4.0.3) mercenary (~> 0.3) minima (= 2.5.1) - nokogiri (>= 1.10.4, < 2.0) + nokogiri (>= 1.12.5, < 2.0) rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.17.7) + github-pages-health-check (1.17.9) addressable (~> 2.3) dnsruby (~> 1.60) octokit (~> 4.0) public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.14.0) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.8.0) @@ -126,12 +109,12 @@ GEM jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.3.1) - commonmarker (~> 0.14) - jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.6) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1.2) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.2.0) + commonmarker (~> 0.23.4) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) rouge (>= 2.0, < 4.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) @@ -142,6 +125,8 @@ GEM jekyll-github-metadata (2.13.0) jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) jekyll-mentions (1.6.0) html-pipeline (~> 2.3) jekyll (>= 3.7, < 5.0) @@ -161,7 +146,7 @@ GEM rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.7.1) + jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) @@ -219,7 +204,7 @@ GEM kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.3) - listen (3.7.1) + listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) @@ -227,26 +212,23 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.15.0) - multipart-post (2.1.1) - nokogiri (1.14.3-x86_64-darwin) + minitest (5.20.0) + nokogiri (1.15.5-x86_64-darwin) racc (~> 1.4) - nokogiri (1.14.3-x86_64-linux) + nokogiri (1.15.5-x86_64-linux) racc (~> 1.4) - octokit (4.22.0) - faraday (>= 0.9) - sawyer (~> 0.8.0, >= 0.5.3) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) - racc (1.6.2) - rb-fsevent (0.11.0) + public_suffix (4.0.7) + racc (1.7.3) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.2.5) + rexml (3.2.6) rouge (3.26.0) - ruby-enum (0.9.0) - i18n ruby2_keywords (0.0.5) rubyzip (2.3.2) safe_yaml (1.0.5) @@ -255,31 +237,31 @@ GEM sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.2) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) + faraday (>= 0.17.3, < 3) simpleidn (0.2.1) unf (~> 0.1.4) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) - typhoeus (1.4.0) + typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (1.2.9) thread_safe (~> 0.1) unf (0.1.4) unf_ext - unf_ext (0.0.8) + unf_ext (0.0.9.1) unicode-display_width (1.8.0) webrick (1.8.1) - zeitwerk (2.5.3) + zeitwerk (2.6.12) PLATFORMS x86_64-darwin-19 x86_64-linux DEPENDENCIES - github-pages (~> 219) + github-pages (~> 225) jekyll (~> 3.9.0) minima (~> 2.5) tzinfo (~> 1.2) From d01b2a64d894ddb713a8940cc951140291f449b3 Mon Sep 17 00:00:00 2001 From: Eclipse CDI Bot Date: Thu, 30 Nov 2023 18:09:02 +0000 Subject: [PATCH 052/113] [maven-release-plugin] prepare release 4.1.0-M1 --- api/pom.xml | 4 ++-- el/pom.xml | 2 +- lang-model/pom.xml | 2 +- pom.xml | 4 ++-- spec/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index fc018c0d..2851cfdf 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0-M1 jakarta.enterprise.cdi-api @@ -217,7 +217,7 @@ scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git - HEAD + 4.1.0-M1 diff --git a/el/pom.xml b/el/pom.xml index 89d31555..205a96b2 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0-M1 jakarta.enterprise.cdi-el-api diff --git a/lang-model/pom.xml b/lang-model/pom.xml index dc905c86..86ea050a 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0-M1 jakarta.enterprise.lang-model diff --git a/pom.xml b/pom.xml index f09700c8..259da341 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent pom - 4.1.0-SNAPSHOT + 4.1.0-M1 Parent module for CDI Specification @@ -26,7 +26,7 @@ scm:git:git://github.com/eclipse-ee4j/cdi.git scm:git:git@github.com:eclipse-ee4j/cdi.git https://github.com/eclipse-ee4j/cdi - HEAD + 4.1.0-M1 diff --git a/spec/pom.xml b/spec/pom.xml index a00c29e2..485c5c52 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-SNAPSHOT + 4.1.0-M1 jakarta.enterprise.cdi-spec-doc From ecec955616c9e9b37a01f738824a5a5c1d287db0 Mon Sep 17 00:00:00 2001 From: Eclipse CDI Bot Date: Thu, 30 Nov 2023 18:09:04 +0000 Subject: [PATCH 053/113] [maven-release-plugin] prepare for next development iteration --- api/pom.xml | 4 ++-- el/pom.xml | 2 +- lang-model/pom.xml | 2 +- pom.xml | 4 ++-- spec/pom.xml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 2851cfdf..fc018c0d 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -21,7 +21,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-M1 + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-api @@ -217,7 +217,7 @@ scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git scm:git:git@github.com:cdi-spec/cdi.git - 4.1.0-M1 + HEAD diff --git a/el/pom.xml b/el/pom.xml index 205a96b2..89d31555 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-M1 + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-el-api diff --git a/lang-model/pom.xml b/lang-model/pom.xml index 86ea050a..dc905c86 100644 --- a/lang-model/pom.xml +++ b/lang-model/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-M1 + 4.1.0-SNAPSHOT jakarta.enterprise.lang-model diff --git a/pom.xml b/pom.xml index 259da341..f09700c8 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent pom - 4.1.0-M1 + 4.1.0-SNAPSHOT Parent module for CDI Specification @@ -26,7 +26,7 @@ scm:git:git://github.com/eclipse-ee4j/cdi.git scm:git:git@github.com:eclipse-ee4j/cdi.git https://github.com/eclipse-ee4j/cdi - 4.1.0-M1 + HEAD diff --git a/spec/pom.xml b/spec/pom.xml index 485c5c52..a00c29e2 100644 --- a/spec/pom.xml +++ b/spec/pom.xml @@ -4,7 +4,7 @@ jakarta.enterprise jakarta.enterprise.cdi-parent - 4.1.0-M1 + 4.1.0-SNAPSHOT jakarta.enterprise.cdi-spec-doc From e8639b11576c4322b6d760f0d1b8a76a9bd0f827 Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Mon, 13 Nov 2023 20:07:27 +0100 Subject: [PATCH 054/113] Add an API for programmatic access to assignability rules for observer methods and typesafe resolution. --- .../enterprise/inject/spi/BeanContainer.java | 36 +++++++++++++++++++ .../asciidoc/core/beanmanager_lite.asciidoc | 11 ++++++ 2 files changed, 47 insertions(+) diff --git a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java index cf6b0bdc..97b3cf32 100644 --- a/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java +++ b/api/src/main/java/jakarta/enterprise/inject/spi/BeanContainer.java @@ -251,4 +251,40 @@ public interface BeanContainer { * @since 2.0 */ Instance createInstance(); + + /** + * Returns true if a bean with given bean types and qualifiers would be assignable + * to an injection point with given required type and required qualifiers, false otherwise. + *

    + * Callers do not need to include implied qualifiers ({@code @Default}, {@code Any}). + * These will be automatically added where applicable. + *

    + * Throws {@link IllegalArgumentException} if any of the arguments is {@code null}. + * + * @param beanTypes bean types of a bean; must not be {@code null} + * @param beanQualifiers qualifiers of a bean; must not be {@code null} + * @param requiredType required type of an injection point; must not be {@code null} + * @param requiredQualifiers required qualifiers of an injection point; must not be {@code null} + * @return true if a bean with given bean types and qualifiers would be assignable + * to an injection point with given required type and required qualifiers, false otherwise + */ + boolean isMatchingBean(Set beanTypes, Set beanQualifiers, Type requiredType, Set requiredQualifiers); + + /** + * Returns true if an event object with given type and qualifiers would match + * an observer method with given observed event type and observed event qualifiers, false otherwise. + *

    + * Callers do not need to include implied qualifiers ({@code @Default}, {@code Any}). + * These will be automatically added where applicable. + *

    + * Throws {@link IllegalArgumentException} if any of the arguments is {@code null}. + * + * @param eventType type of an event object; must not be {@code null} + * @param eventQualifiers event qualifiers; must not be {@code null} + * @param observedEventType observed event type of an observer method; must not be {@code null} + * @param observedEventQualifiers observed event qualifiers on an observer method; must not be {@code null} + * @return true if an event object with given type and qualifiers would result in notifying + * an observer method with given observed event type and observed event qualifiers, false otherwise + */ + boolean isMatchingEvent(Type eventType, Set eventQualifiers, Type observedEventType, Set observedEventQualifiers); } diff --git a/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc b/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc index 5978c45a..11fdd82c 100644 --- a/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc +++ b/spec/src/main/asciidoc/core/beanmanager_lite.asciidoc @@ -260,3 +260,14 @@ Instance createInstance(); Instances of dependent scoped beans obtained with this `Instance` object must be explicitly released by calling `Instance.destroy()` method. If no qualifier is passed to `Instance.select()` method, the `@Default` qualifier is assumed. + +==== Assignability of beans and observers + +The methods `BeanContainer.isMatchingBean()` and `isMatchingObserver()` provide access to assignability rules defined in <> and <>. + +[source, java] +---- +public boolean isMatchingBean(Set beanTypes, Set beanQualifiers, Type requiredType, Set requiredQualifiers); + +public boolean isMatchingEvent(Type eventType, Set eventQualifiers, Type observedEventType, Set observedEventQualifiers); +---- From 0e49d4b74ae039d9ebcba2ed065be5670ee6b6e2 Mon Sep 17 00:00:00 2001 From: Scott M Stark Date: Tue, 12 Dec 2023 16:01:44 -0600 Subject: [PATCH 055/113] Update jakarta.el to 6.0.0-M1 and update osgi manifest export/imports, #732 (#733) * Update jakarta.el to 6.0.0-M1 and update osgi manifest export/imports, #732 * Avoid using SE 11 on el module since it now depends on a jar with SE 17 classes --------- Signed-off-by: Scott M Stark --- .github/workflows/ci-actions.yml | 14 ++++++++++++-- el/pom.xml | 6 +++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index 45aa1805..ddc6db3b 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -22,9 +22,19 @@ jobs: with: distribution: 'temurin' java-version: ${{ matrix.java }} - - name: "Maven install" + - if: ${{ matrix.java != '11' }} + name: "Maven install > 11" run: | mvn -Pstaging install -DskipTests=true -B -V - - name: "Maven test" + - if: ${{ matrix.java == '11' }} + name: "Maven install 11" + run: | + mvn -Pstaging -pl '!el' install -DskipTests=true -B -V + - if: ${{ matrix.java != '11' }} + name: "Maven test > 11" run: | mvn -Pstaging test -B + - if: ${{ matrix.java == '11' }} + name: "Maven test 11" + run: | + mvn -Pstaging -pl '!el' test -B diff --git a/el/pom.xml b/el/pom.xml index 89d31555..8045b25c 100644 --- a/el/pom.xml +++ b/el/pom.xml @@ -22,7 +22,7 @@ - 5.0.0 + 6.0.0-M1 @@ -94,10 +94,10 @@ - jakarta.enterprise.inject.spi.el;version=4.1, + jakarta.enterprise.inject.spi.el;version="4.1";uses:="jakarta.el" - jakarta.el;version=5.0 + jakarta.el;version="6.0",jakarta.enterprise.context,jakarta.enterprise.inject.spi From 686b2520745117b5fc07ad83b1bff161a170178e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:02:13 -0600 Subject: [PATCH 056/113] Bump github-pages and jekyll in /docs (#728) Bumps [github-pages](https://github.com/github/pages-gem) and [jekyll](https://github.com/jekyll/jekyll). These dependencies needed to be updated together. Updates `github-pages` from 225 to 228 - [Release notes](https://github.com/github/pages-gem/releases) - [Commits](https://github.com/github/pages-gem/compare/v225...v228) Updates `jekyll` from 3.9.0 to 3.9.3 - [Release notes](https://github.com/jekyll/jekyll/releases) - [Changelog](https://github.com/jekyll/jekyll/blob/master/History.markdown) - [Commits](https://github.com/jekyll/jekyll/compare/v3.9.0...v3.9.3) --- updated-dependencies: - dependency-name: github-pages dependency-type: direct:development update-type: version-update:semver-major - dependency-name: jekyll dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile | 4 ++-- docs/Gemfile.lock | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/Gemfile b/docs/Gemfile index 6742ea5c..383f1239 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -7,12 +7,12 @@ source "https://rubygems.org" # # This will help ensure the proper Jekyll version is running. # Happy Jekylling! -gem "jekyll", "~> 3.9.0" +gem "jekyll", "~> 3.9.3" # This is the default theme for new Jekyll sites. You may change this to anything you like. gem "minima", "~> 2.5" # If you want to use GitHub Pages, remove the "gem "jekyll"" above and # uncomment the line below. To upgrade, run `bundle update github-pages`. -gem "github-pages", "~> 225", group: :jekyll_plugins +gem "github-pages", "~> 228", group: :jekyll_plugins # If you have any plugins, put them here! group :jekyll_plugins do end diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index a3c431cc..286b8468 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -34,12 +34,12 @@ GEM ffi (1.16.3) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (225) + github-pages (228) github-pages-health-check (= 1.17.9) - jekyll (= 3.9.0) + jekyll (= 3.9.3) jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.2.0) + jekyll-commonmark-ghpages (= 0.4.0) jekyll-default-layout (= 0.1.4) jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) @@ -71,12 +71,12 @@ GEM jekyll-theme-time-machine (= 0.2.0) jekyll-titles-from-headings (= 0.5.3) jemoji (= 0.12.0) - kramdown (= 2.3.1) + kramdown (= 2.3.2) kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.3) + liquid (= 4.0.4) mercenary (~> 0.3) minima (= 2.5.1) - nokogiri (>= 1.12.5, < 2.0) + nokogiri (>= 1.13.6, < 2.0) rouge (= 3.26.0) terminal-table (~> 1.4) github-pages-health-check (1.17.9) @@ -89,13 +89,13 @@ GEM activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.8.0) - i18n (0.9.5) + i18n (1.14.1) concurrent-ruby (~> 1.0) - jekyll (3.9.0) + jekyll (3.9.3) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) - i18n (~> 0.7) + i18n (>= 0.7, < 2) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) kramdown (>= 1.17, < 3) @@ -111,11 +111,11 @@ GEM coffee-script-source (~> 1.11.1) jekyll-commonmark (1.4.0) commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.2.0) - commonmarker (~> 0.23.4) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) jekyll (~> 3.9.0) jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 4.0) + rouge (>= 2.0, < 5.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) jekyll-feed (0.15.1) @@ -199,11 +199,11 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - kramdown (2.3.1) + kramdown (2.3.2) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - liquid (4.0.3) + liquid (4.0.4) listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -261,8 +261,8 @@ PLATFORMS x86_64-linux DEPENDENCIES - github-pages (~> 225) - jekyll (~> 3.9.0) + github-pages (~> 228) + jekyll (~> 3.9.3) minima (~> 2.5) tzinfo (~> 1.2) tzinfo-data From 1c6e11f8a4c6e0b40d90d34ac7cc00de0fc0ee25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:02:35 -0600 Subject: [PATCH 057/113] Bump org.testng:testng from 7.7.0 to 7.8.0 (#727) Bumps [org.testng:testng](https://github.com/testng-team/testng) from 7.7.0 to 7.8.0. - [Release notes](https://github.com/testng-team/testng/releases) - [Changelog](https://github.com/testng-team/testng/blob/master/CHANGES.txt) - [Commits](https://github.com/testng-team/testng/compare/7.7.0...7.8.0) --- updated-dependencies: - dependency-name: org.testng:testng dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- api/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/pom.xml b/api/pom.xml index fc018c0d..40e4e405 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -138,7 +138,7 @@ org.testng testng - 7.7.0 + 7.8.0 From 63d5254238414f33d9d557ee652776b2d8258d03 Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Sat, 9 Dec 2023 21:22:31 +0100 Subject: [PATCH 058/113] Introdude formatter and impsort; make sure CI checks formatting --- .github/workflows/ci-actions.yml | 4 +- .gitignore | 1 + ide-config/pom.xml | 22 ++ ide-config/src/main/resources/cdi-format.xml | 322 ++++++++++++++++++ ide-config/src/main/resources/cdi.importorder | 6 + pom.xml | 127 +++++++ 6 files changed, 480 insertions(+), 2 deletions(-) create mode 100644 ide-config/pom.xml create mode 100644 ide-config/src/main/resources/cdi-format.xml create mode 100644 ide-config/src/main/resources/cdi.importorder diff --git a/.github/workflows/ci-actions.yml b/.github/workflows/ci-actions.yml index ddc6db3b..61c79891 100644 --- a/.github/workflows/ci-actions.yml +++ b/.github/workflows/ci-actions.yml @@ -25,11 +25,11 @@ jobs: - if: ${{ matrix.java != '11' }} name: "Maven install > 11" run: | - mvn -Pstaging install -DskipTests=true -B -V + mvn -Pstaging install -DskipTests=true -Dno-format -B -V - if: ${{ matrix.java == '11' }} name: "Maven install 11" run: | - mvn -Pstaging -pl '!el' install -DskipTests=true -B -V + mvn -Pstaging -pl '!el' install -DskipTests=true -Dno-format -B -V - if: ${{ matrix.java != '11' }} name: "Maven test > 11" run: | diff --git a/.gitignore b/.gitignore index dccf579c..58515ad7 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ spec/en/master-filtered.xml *.iws .idea *.swp +.cache diff --git a/ide-config/pom.xml b/ide-config/pom.xml new file mode 100644 index 00000000..1f1b19be --- /dev/null +++ b/ide-config/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + + jakarta.enterprise + jakarta.enterprise.cdi-parent + 4.1.0-SNAPSHOT + + + cdi-ide-config + + CDI IDE Config + Formatting config and import sorting + + + 11 + + + \ No newline at end of file diff --git a/ide-config/src/main/resources/cdi-format.xml b/ide-config/src/main/resources/cdi-format.xml new file mode 100644 index 00000000..abda5766 --- /dev/null +++ b/ide-config/src/main/resources/cdi-format.xml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ide-config/src/main/resources/cdi.importorder b/ide-config/src/main/resources/cdi.importorder new file mode 100644 index 00000000..fa81c81b --- /dev/null +++ b/ide-config/src/main/resources/cdi.importorder @@ -0,0 +1,6 @@ +#Organize Import Order +0=java +1=javax +2=jakarta +3=org +4=com diff --git a/pom.xml b/pom.xml index f09700c8..fbe62b61 100644 --- a/pom.xml +++ b/pom.xml @@ -34,9 +34,46 @@ lang-model api el + ide-config clean package + + + + net.revelc.code.formatter + formatter-maven-plugin + ${formatter.version} + + + jakarta.enterprise + cdi-ide-config + ${project.version} + + + + + .cache/formatter-maven-plugin-${formatter-maven-plugin.version} + cdi-format.xml + LF + ${format.skip} + + + + net.revelc.code + impsort-maven-plugin + ${impsort.version} + + + .cache/impsort-maven-plugin-${impsort-maven-plugin.version} + java.,javax.,jakarta.,org.,com. + * + ${format.skip} + true + + + + @@ -48,6 +85,11 @@ 3.8.1 3.2.2 + + false + 2.23.0 + 1.9.0 + https://jakarta.oss.sonatype.org/ ${sonatypeOssDistMgmtNexusUrl}content/repositories/staging/ @@ -86,6 +128,91 @@ + + + format + + false + + !no-format + + + + + src/main/java + + + + + + net.revelc.code.formatter + formatter-maven-plugin + + + process-sources + + format + + + + + + net.revelc.code + impsort-maven-plugin + + + sort-imports + + sort + + + + + + + + + validate + + false + + no-format + + + + + src/main/java + + + + + + net.revelc.code.formatter + formatter-maven-plugin + + + process-sources + + validate + + + + + + net.revelc.code + impsort-maven-plugin + + + check-imports + + check + + + + + + + From 48aa4dc6ce701fdfc614fe4eef4e8414fc596bba Mon Sep 17 00:00:00 2001 From: Matej Novotny Date: Sat, 9 Dec 2023 21:23:04 +0100 Subject: [PATCH 059/113] Apply formatting rules to the codebase --- .../java/jakarta/decorator/Decorator.java | 12 +- .../main/java/jakarta/decorator/Delegate.java | 48 ++--- .../java/jakarta/decorator/package-info.java | 149 ++++++++------ .../enterprise/context/ApplicationScoped.java | 25 +-- .../enterprise/context/BeforeDestroyed.java | 13 +- .../context/BusyConversationException.java | 12 +- .../enterprise/context/ContextException.java | 4 +- .../context/ContextNotActiveException.java | 6 +- .../enterprise/context/Conversation.java | 32 +-- .../context/ConversationScoped.java | 30 ++- .../jakarta/enterprise/context/Dependent.java | 11 +- .../jakarta/enterprise/context/Destroyed.java | 1 + .../enterprise/context/Initialized.java | 11 +- .../NonexistentConversationException.java | 12 +- .../enterprise/context/NormalScope.java | 10 +- .../enterprise/context/RequestScoped.java | 12 +- .../enterprise/context/SessionScoped.java | 13 +- .../control/ActivateRequestContext.java | 13 +- .../control/RequestContextController.java | 51 ++--- .../enterprise/context/package-info.java | 179 +++++++++-------- .../context/spi/AlterableContext.java | 12 +- .../enterprise/context/spi/Context.java | 22 +-- .../enterprise/context/spi/Contextual.java | 10 +- .../context/spi/CreationalContext.java | 6 +- .../enterprise/context/spi/package-info.java | 31 +-- .../java/jakarta/enterprise/event/Event.java | 68 ++++--- .../event/ImmutableNotificationOptions.java | 4 +- .../enterprise/event/NotificationOptions.java | 16 +- .../enterprise/event/ObserverException.java | 4 +- .../jakarta/enterprise/event/Observes.java | 30 +-- .../enterprise/event/ObservesAsync.java | 30 +-- .../jakarta/enterprise/event/Reception.java | 8 +- .../enterprise/event/TransactionPhase.java | 13 +- .../enterprise/event/package-info.java | 173 +++++++++------- .../enterprise/inject/Alternative.java | 3 +- .../inject/AmbiguousResolutionException.java | 4 +- .../enterprise/inject/CreationException.java | 4 +- .../jakarta/enterprise/inject/Decorated.java | 14 +- .../jakarta/enterprise/inject/Disposes.java | 40 ++-- .../inject/IllegalProductException.java | 2 +- .../enterprise/inject/InjectionException.java | 4 +- .../jakarta/enterprise/inject/Instance.java | 86 ++++---- .../enterprise/inject/Intercepted.java | 14 +- .../java/jakarta/enterprise/inject/Model.java | 4 +- .../jakarta/enterprise/inject/Produces.java | 48 ++--- .../inject/ResolutionException.java | 4 +- .../enterprise/inject/Specializes.java | 36 ++-- .../jakarta/enterprise/inject/Stereotype.java | 39 ++-- .../enterprise/inject/TransientReference.java | 17 +- .../java/jakarta/enterprise/inject/Typed.java | 2 +- .../UnproxyableResolutionException.java | 4 +- .../UnsatisfiedResolutionException.java | 4 +- .../jakarta/enterprise/inject/Vetoed.java | 10 +- .../compatible/spi/AnnotationBuilder.java | 6 +- .../spi/AnnotationBuilderFactory.java | 4 +- .../inject/build/compatible/spi/BeanInfo.java | 3 +- .../build/compatible/spi/ClassConfig.java | 6 +- .../compatible/spi/DeclarationConfig.java | 6 +- .../build/compatible/spi/FieldConfig.java | 6 +- .../compatible/spi/InjectionPointInfo.java | 3 +- .../build/compatible/spi/InterceptorInfo.java | 4 +- .../build/compatible/spi/MetaAnnotations.java | 10 +- .../build/compatible/spi/MethodConfig.java | 6 +- .../build/compatible/spi/ObserverInfo.java | 7 +- .../build/compatible/spi/ParameterConfig.java | 6 +- .../build/compatible/spi/Parameters.java | 6 +- .../build/compatible/spi/ScannedClasses.java | 2 +- .../build/compatible/spi/SecurityActions.java | 3 +- .../spi/SkipIfPortableExtensionPresent.java | 4 +- .../build/compatible/spi/StereotypeInfo.java | 5 +- .../compatible/spi/SyntheticBeanBuilder.java | 4 +- .../compatible/spi/SyntheticComponents.java | 1 + .../spi/SyntheticObserverBuilder.java | 4 +- .../inject/build/compatible/spi/Types.java | 11 +- .../build/compatible/spi/package-info.java | 4 +- .../enterprise/inject/se/SeContainer.java | 12 +- .../inject/se/SeContainerInitializer.java | 64 +++--- .../inject/spi/AfterBeanDiscovery.java | 25 +-- .../inject/spi/AfterDeploymentValidation.java | 8 +- .../inject/spi/AfterTypeDiscovery.java | 24 ++- .../enterprise/inject/spi/Annotated.java | 21 +- .../inject/spi/AnnotatedCallable.java | 8 +- .../inject/spi/AnnotatedConstructor.java | 15 +- .../enterprise/inject/spi/AnnotatedField.java | 15 +- .../inject/spi/AnnotatedMember.java | 12 +- .../inject/spi/AnnotatedMethod.java | 15 +- .../inject/spi/AnnotatedParameter.java | 17 +- .../enterprise/inject/spi/AnnotatedType.java | 21 +- .../jakarta/enterprise/inject/spi/Bean.java | 9 +- .../enterprise/inject/spi/BeanAttributes.java | 14 +- .../enterprise/inject/spi/BeanContainer.java | 83 ++++---- .../enterprise/inject/spi/BeanManager.java | 123 ++++++------ .../inject/spi/BeforeBeanDiscovery.java | 59 +++--- .../enterprise/inject/spi/BeforeShutdown.java | 6 +- .../jakarta/enterprise/inject/spi/CDI.java | 12 +- .../enterprise/inject/spi/CDIProvider.java | 7 +- .../enterprise/inject/spi/Decorator.java | 14 +- .../inject/spi/DefinitionException.java | 10 +- .../inject/spi/DeploymentException.java | 12 +- .../enterprise/inject/spi/EventContext.java | 8 +- .../enterprise/inject/spi/EventMetadata.java | 10 +- .../enterprise/inject/spi/Extension.java | 16 +- .../enterprise/inject/spi/InjectionPoint.java | 36 ++-- .../inject/spi/InjectionTarget.java | 22 ++- .../inject/spi/InjectionTargetFactory.java | 29 +-- .../inject/spi/InterceptionFactory.java | 8 +- .../inject/spi/InterceptionType.java | 6 +- .../enterprise/inject/spi/Interceptor.java | 12 +- .../enterprise/inject/spi/ObserverMethod.java | 39 ++-- .../inject/spi/PassivationCapable.java | 12 +- .../enterprise/inject/spi/Prioritized.java | 2 +- .../inject/spi/ProcessAnnotatedType.java | 19 +- .../enterprise/inject/spi/ProcessBean.java | 19 +- .../inject/spi/ProcessBeanAttributes.java | 28 ++- .../inject/spi/ProcessInjectionPoint.java | 16 +- .../inject/spi/ProcessInjectionTarget.java | 16 +- .../inject/spi/ProcessManagedBean.java | 8 +- .../inject/spi/ProcessObserverMethod.java | 28 +-- .../inject/spi/ProcessProducer.java | 22 ++- .../inject/spi/ProcessProducerField.java | 12 +- .../inject/spi/ProcessProducerMethod.java | 10 +- .../inject/spi/ProcessSessionBean.java | 16 +- .../spi/ProcessSyntheticAnnotatedType.java | 10 +- .../inject/spi/ProcessSyntheticBean.java | 8 +- .../spi/ProcessSyntheticObserverMethod.java | 11 +- .../enterprise/inject/spi/Producer.java | 20 +- .../inject/spi/ProducerFactory.java | 16 +- .../inject/spi/SecurityActions.java | 3 +- .../inject/spi/SessionBeanType.java | 6 +- .../enterprise/inject/spi/Unmanaged.java | 27 +-- .../inject/spi/WithAnnotations.java | 14 +- .../AnnotatedConstructorConfigurator.java | 26 +-- .../AnnotatedFieldConfigurator.java | 26 +-- .../AnnotatedMethodConfigurator.java | 24 +-- .../AnnotatedParameterConfigurator.java | 28 +-- .../AnnotatedTypeConfigurator.java | 32 +-- .../BeanAttributesConfigurator.java | 11 +- .../spi/configurator/BeanConfigurator.java | 4 +- .../InjectionPointConfigurator.java | 9 +- .../ObserverMethodConfigurator.java | 12 +- .../configurator/ProducerConfigurator.java | 11 +- .../enterprise/inject/spi/package-info.java | 187 ++++++++++-------- .../jakarta/enterprise/invoke/Invoker.java | 8 +- .../enterprise/invoke/InvokerBuilder.java | 19 +- .../enterprise/util/AnnotationLiteral.java | 14 +- .../jakarta/enterprise/util/Nonbinding.java | 3 +- .../enterprise/util/SecurityActions.java | 7 +- .../jakarta/enterprise/util/TypeLiteral.java | 14 +- .../jakarta/enterprise/util/package-info.java | 2 +- .../cdi/api/test/AnnotationLiteralTest.java | 12 +- .../java/org/jboss/cdi/api/test/CDITest.java | 21 +- .../cdi/api/test/ClosableCDIProvider.java | 8 +- .../jboss/cdi/api/test/DummyCDIProvider.java | 3 +- .../jboss/cdi/api/test/DummyCDIProvider2.java | 4 +- .../test/annotated/AbstractAnnotatedTest.java | 17 +- .../annotated/AnnotatedCallableHolder.java | 36 ++-- .../annotated/AnnotatedConstructorHolder.java | 6 +- .../annotated/AnnotatedConstructorTest.java | 20 +- .../test/annotated/AnnotatedFieldHolder.java | 6 +- .../test/annotated/AnnotatedFieldTest.java | 19 +- .../test/annotated/AnnotatedMemberHolder.java | 29 ++- .../test/annotated/AnnotatedMethodHolder.java | 8 +- .../test/annotated/AnnotatedMethodTest.java | 21 +- .../annotated/AnnotatedParameterHolder.java | 26 ++- .../annotated/AnnotatedParameterTest.java | 18 +- .../test/annotated/AnnotatedTypeHolder.java | 34 ++-- .../api/test/annotated/AnnotatedTypeTest.java | 14 +- .../cdi/api/test/annotated/RepeatBean.java | 1 + .../cdi/api/test/annotated/Repeater.java | 2 +- .../cdi/api/test/annotated/Repeaters.java | 2 +- .../parameter/AnnotatedParameterTest.java | 6 +- .../test/event/NotificationOptionsTest.java | 2 +- .../test/privileged/CDIPrivilegedTest.java | 1 - .../api/test/privileged/FakeCDIProvider.java | 4 +- .../annotation/AnnotationLiteralTest.java | 1 + .../privileged/annotation/MyAnnotation.java | 2 +- .../annotation/MyAnnotationLiteral.java | 1 - .../test/se/DummySeContainerInitializer.java | 9 +- .../test/se/DummySeContainerInitializer2.java | 8 +- .../test/se/SeContainerInitializerTest.java | 14 +- .../inject/spi/el/ELAwareBeanManager.java | 3 +- .../enterprise/lang/model/AnnotationInfo.java | 7 +- .../lang/model/AnnotationMember.java | 4 +- .../lang/model/AnnotationTarget.java | 9 +- .../lang/model/declarations/ClassInfo.java | 6 +- .../lang/model/declarations/MethodInfo.java | 5 +- .../lang/model/types/ParameterizedType.java | 3 +- .../enterprise/lang/model/types/Type.java | 3 +- 188 files changed, 1941 insertions(+), 1527 deletions(-) diff --git a/api/src/main/java/jakarta/decorator/Decorator.java b/api/src/main/java/jakarta/decorator/Decorator.java index 3b3578ac..e7497f71 100644 --- a/api/src/main/java/jakarta/decorator/Decorator.java +++ b/api/src/main/java/jakarta/decorator/Decorator.java @@ -8,7 +8,7 @@ * 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, + * 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. @@ -29,19 +29,21 @@ *

    * Specifies that a class is a decorator. May be applied to a managed bean class. *

    - * + * *
    - * @Decorator 
    + * @Decorator
      * class TimestampLogger implements Logger { ... }
      * 
    - * + * *

    * Decorators of a session bean must comply with the bean provider programming restrictions defined by the EJB specification. * Decorators of a stateful session bean must comply with the rules for instance passivation and conversational state defined by * the EJB specification. *

    * - *

    CDI Lite implementations are not required to provide support for decorators.

    + *

    + * CDI Lite implementations are not required to provide support for decorators. + *

    * * @see Delegate @Delegate identifies the delegate injection point of a decorator. * diff --git a/api/src/main/java/jakarta/decorator/Delegate.java b/api/src/main/java/jakarta/decorator/Delegate.java index 23e331a7..4e757389 100644 --- a/api/src/main/java/jakarta/decorator/Delegate.java +++ b/api/src/main/java/jakarta/decorator/Delegate.java @@ -8,7 +8,7 @@ * 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, + * 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. @@ -29,45 +29,45 @@ * Identifies the delegate injection point of a decorator. May be applied to a field, bean constructor parameter or initializer * method parameter of a decorator bean class. *

    - * + * *
    - * @Decorator 
    - * class TimestampLogger implements Logger { 
    - *    @Inject @Delegate @Any Logger logger; 
    - *    ... 
    + * @Decorator
    + * class TimestampLogger implements Logger {
    + *    @Inject @Delegate @Any Logger logger;
    + *    ...
      * }
      * 
    - * + * *
    - * @Decorator 
    - * class TimestampLogger implements Logger { 
    + * @Decorator
    + * class TimestampLogger implements Logger {
      *    private Logger logger;
    - *    
    + *
      *    @Inject
    - *    public TimestampLogger(@Delegate @Debug Logger logger) { 
    - *       this.logger=logger; 
    - *    } 
    - *    ... 
    + *    public TimestampLogger(@Delegate @Debug Logger logger) {
    + *       this.logger=logger;
    + *    }
    + *    ...
      * }
      * 
    - * + * *

    * A decorator must have exactly one delegate injection point. The delegate injection point must be an injected field, * initializer method parameter or bean constructor method parameter. *

    - * + * *

    * The container injects a delegate object to the delegate injection point. The delegate object implements the delegate type and * delegates method invocations along the decorator stack. When the container calls a decorator during business method * interception, the decorator may invoke any method of the delegate object. If a decorator invokes the delegate object at any * other time, the invoked method throws an {@link java.lang.IllegalStateException}. *

    - * + * *
    - * @Decorator 
    - * class TimestampLogger implements Logger { 
    - *    @Inject @Delegate @Any Logger logger; 
    - *    
    + * @Decorator
    + * class TimestampLogger implements Logger {
    + *    @Inject @Delegate @Any Logger logger;
    + *
      *    void log(String message) {
      *       logger.log( timestamp() + ": " + message );
      *    }
    @@ -75,10 +75,12 @@
      * }
      * 
    * - *

    CDI Lite implementations are not required to provide support for decorators.

    + *

    + * CDI Lite implementations are not required to provide support for decorators. + *

    * * @see Decorator @Decorator specifies that a class is a decorator. - * + * * @author Gavin King * @author Pete Muir */ diff --git a/api/src/main/java/jakarta/decorator/package-info.java b/api/src/main/java/jakarta/decorator/package-info.java index 4610ed95..14bf3a78 100644 --- a/api/src/main/java/jakarta/decorator/package-info.java +++ b/api/src/main/java/jakarta/decorator/package-info.java @@ -8,89 +8,114 @@ * 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, + * 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. */ /** - *

    Annotations relating to decorators.

    - * - *

    A decorator implements one or more bean types and - * intercepts business method invocations of - * {@linkplain jakarta.enterprise.inject beans} which - * implement those bean types. These bean types are called - * decorated types.

    - * - *

    A decorator is a managed bean annotated {@link - * jakarta.decorator.Decorator @Decorator}.

    - * - *

    Decorators are superficially similar to interceptors, - * but because they directly implement operations with business - * semantics, they are able to implement business logic and, - * conversely, unable to implement the cross-cutting concerns - * for which interceptors are optimized. Decorators are called - * after interceptors.

    - * + *

    + * Annotations relating to decorators. + *

    + * + *

    + * A decorator implements one or more bean types and + * intercepts business method invocations of + * {@linkplain jakarta.enterprise.inject beans} which + * implement those bean types. These bean types are called + * decorated types. + *

    + * + *

    + * A decorator is a managed bean annotated {@link + * jakarta.decorator.Decorator @Decorator}. + *

    + * + *

    + * Decorators are superficially similar to interceptors, + * but because they directly implement operations with business + * semantics, they are able to implement business logic and, + * conversely, unable to implement the cross-cutting concerns + * for which interceptors are optimized. Decorators are called + * after interceptors. + *

    + * *

    Decorated types

    - * - *

    The set of decorated types of a decorator includes all - * bean types of the managed bean that are Java interfaces, - * except for {@link java.io.Serializable}. The decorator bean - * class and its superclasses are not decorated types of the - * decorator. The decorator class may be abstract.

    - * - *

    A decorator intercepts every method:

    + * + *

    + * The set of decorated types of a decorator includes all + * bean types of the managed bean that are Java interfaces, + * except for {@link java.io.Serializable}. The decorator bean + * class and its superclasses are not decorated types of the + * decorator. The decorator class may be abstract. + *

    + * + *

    + * A decorator intercepts every method: + *

    *
      *
    • declared by a decorated type of the decorator
    • *
    • that is implemented by the bean class of the decorator.
    • *
    - * - *

    A decorator may be an abstract class, and is not required to - * implement every method of every decorated type.

    - * + * + *

    + * A decorator may be an abstract class, and is not required to + * implement every method of every decorated type. + *

    + * *

    Delegate injection points

    - * - *

    All decorators have a - * {@linkplain jakarta.decorator.Delegate delegate injection point}. - * A delegate injection point is an injection point of the bean - * class annotated {@link jakarta.decorator.Delegate @Delegate}.

    - * - *

    The type of the delegate injection point must implement or - * extend every decorated type. A decorator is not required to - * implement the type of the delegate injection point.

    - * + * + *

    + * All decorators have a + * {@linkplain jakarta.decorator.Delegate delegate injection point}. + * A delegate injection point is an injection point of the bean + * class annotated {@link jakarta.decorator.Delegate @Delegate}. + *

    + * + *

    + * The type of the delegate injection point must implement or + * extend every decorated type. A decorator is not required to + * implement the type of the delegate injection point. + *

    + * *

    Enabled decorators

    - * - *

    By default, a bean archive has no enabled decorators. A - * decorator must be explicitly enabled by listing its bean class + * + *

    + * By default, a bean archive has no enabled decorators. A + * decorator must be explicitly enabled by listing its bean class * under the <decorators> element of the * beans.xml file of the bean archive. The order of the - * decorator declarations determines the decorator ordering. - * Decorators which occur earlier in the list are called first.

    - * - *

    A decorator is bound to a bean if:

    - * + * decorator declarations determines the decorator ordering. + * Decorators which occur earlier in the list are called first. + *

    + * + *

    + * A decorator is bound to a bean if: + *

    + * *
      - *
    • The bean is {@linkplain jakarta.enterprise.inject eligible for injection} + *
    • The bean is {@linkplain jakarta.enterprise.inject eligible for injection} * to the delegate injection point of the decorator.
    • *
    • The decorator is enabled in the bean archive of the bean.
    • *
    - * - *

    If a managed bean class is declared final, it may not have - * decorators. If a managed bean has a non-static, non-private, + * + *

    + * If a managed bean class is declared final, it may not have + * decorators. If a managed bean has a non-static, non-private, * final method, it may not have any decorator which implements - * that method.

    - * - *

    A decorator instance is a - * {@linkplain jakarta.enterprise.context.Dependent dependent object} - * of the object it decorates.

    - * + * that method. + *

    + * + *

    + * A decorator instance is a + * {@linkplain jakarta.enterprise.context.Dependent dependent object} + * of the object it decorates. + *

    + * * @see jakarta.enterprise.inject - * + * * @see jakarta.decorator.Decorator * @see jakarta.decorator.Delegate - * + * */ package jakarta.decorator; - diff --git a/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java b/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java index a9ede12e..e4e113de 100644 --- a/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java +++ b/api/src/main/java/jakarta/enterprise/context/ApplicationScoped.java @@ -35,7 +35,8 @@ *

    * While ApplicationScoped must be associated with the built-in application context required by the specification, * third-party extensions are - * allowed to also associate it with their own context. Behavior described below is only related to the built-in application context. + * allowed to also associate it with their own context. Behavior described below is only related to the built-in application + * context. *

    * *

    @@ -43,7 +44,8 @@ *

    * *
      - *
    • during the service() method of any servlet in the web application, during the doFilter() method of any + *
    • during the service() method of any servlet in the web application, during the doFilter() method + * of any * servlet filter and when the container calls any ServletContextListener, HttpSessionListener, * AsyncListener or ServletRequestListener,
    • *
    • during any Java EE web service invocation,
    • @@ -64,15 +66,16 @@ *

      * *

      - * An event with qualifier @Initialized(ApplicationScoped.class) is fired when the application context is initialized - * and an event with qualifier @Destroyed(ApplicationScoped.class) when the application context is destroyed. - * The event payload is: - *

      - * - *
        - *
      • the ServletContext if the application is a web application deployed to a Servlet container, or
      • - *
      • any java.lang.Object for other types of application.
      • - *
      + * An event with qualifier @Initialized(ApplicationScoped.class) is fired when the application context is + * initialized + * and an event with qualifier @Destroyed(ApplicationScoped.class) when the application context is destroyed. + * The event payload is: + *

      + * + *
        + *
      • the ServletContext if the application is a web application deployed to a Servlet container, or
      • + *
      • any java.lang.Object for other types of application.
      • + *
      * * @author Gavin King * @author Pete Muir diff --git a/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java b/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java index 8390ecd0..b8c47612 100644 --- a/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java +++ b/api/src/main/java/jakarta/enterprise/context/BeforeDestroyed.java @@ -31,7 +31,7 @@ import jakarta.inject.Qualifier; /** - * An event with this qualifier is fired when a context is about to be destroyed, i.e. before the actual destruction. + * An event with this qualifier is fired when a context is about to be destroyed, i.e. before the actual destruction. * * @author Pete Muir * @author Martin Kouba @@ -47,6 +47,7 @@ /** * The scope for which to observe destruction + * * @return the scope type class */ Class value(); @@ -56,14 +57,14 @@ */ public final static class Literal extends AnnotationLiteral implements BeforeDestroyed { - public static final Literal REQUEST = of(RequestScoped.class); - + public static final Literal REQUEST = of(RequestScoped.class); + public static final Literal CONVERSATION = of(ConversationScoped.class); - + public static final Literal SESSION = of(SessionScoped.class); - + public static final Literal APPLICATION = of(ApplicationScoped.class); - + private static final long serialVersionUID = 1L; private final Class value; diff --git a/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java b/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java index 32611730..4fd40c4d 100644 --- a/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java +++ b/api/src/main/java/jakarta/enterprise/context/BusyConversationException.java @@ -8,7 +8,7 @@ * 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, + * 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. @@ -21,7 +21,7 @@ * Indicates that the container has rejected a request because a concurrent request is associated with the same conversation * context. *

      - * + * *

      * The container ensures that a long-running conversation may be associated with at most one request at a time, by blocking or * rejecting concurrent requests. If the container rejects a request, it must associate the request with a new transient @@ -29,10 +29,12 @@ * lifecycle. *

      * - *

      CDI Lite implementations are not required to provide support for conversations.

      - * + *

      + * CDI Lite implementations are not required to provide support for conversations. + *

      + * * @see ConversationScoped - * + * * @author Pete Muir * @author Gavin King */ diff --git a/api/src/main/java/jakarta/enterprise/context/ContextException.java b/api/src/main/java/jakarta/enterprise/context/ContextException.java index 220a1727..3371d84f 100644 --- a/api/src/main/java/jakarta/enterprise/context/ContextException.java +++ b/api/src/main/java/jakarta/enterprise/context/ContextException.java @@ -8,7 +8,7 @@ * 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, + * 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. @@ -20,7 +20,7 @@ *

      * Indicates a problem relating to context management. *

      - * + * * @author Pete Muir * @author Shane Bryzak */ diff --git a/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java b/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java index 8ef81400..7153f2e2 100644 --- a/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java +++ b/api/src/main/java/jakarta/enterprise/context/ContextNotActiveException.java @@ -8,7 +8,7 @@ * 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, + * 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. @@ -22,9 +22,9 @@ *

      * Indicates that a context is not active. *

      - * + * * @see Context - * + * * @author Pete Muir * @author Shane Bryzak * @author Gavin King diff --git a/api/src/main/java/jakarta/enterprise/context/Conversation.java b/api/src/main/java/jakarta/enterprise/context/Conversation.java index 4d5b7ebf..77b95089 100644 --- a/api/src/main/java/jakarta/enterprise/context/Conversation.java +++ b/api/src/main/java/jakarta/enterprise/context/Conversation.java @@ -8,7 +8,7 @@ * 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, + * 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. @@ -21,28 +21,30 @@ * the current conversation as transient or long-running, specifying a conversation identifier, or setting the conversation * timeout. *

      - * + * *

      * An instance may be injected: *

      - * + * *
        * @Inject
        * Conversation conversation;
        * 
      - * + * *

      * The conversation timeout is a hint to the container that a conversation should not be destroyed if it has been active within * the last given interval in milliseconds. *

      * - *

      CDI Lite implementations are not required to provide support for conversations.

      - * + *

      + * CDI Lite implementations are not required to provide support for conversations. + *

      + * * @see ConversationScoped @ConversationScoped - * + * * @author Pete Muir * @author Gavin King - * + * */ public interface Conversation { @@ -50,7 +52,7 @@ public interface Conversation { *

      * Mark the current transient conversation long-running. A conversation identifier is generated by the container. *

      - * + * * @throws IllegalStateException if the current conversation is already marked long-running. */ public void begin(); @@ -59,7 +61,7 @@ public interface Conversation { *

      * Mark the current transient conversation long-running, with a specified identifier. *

      - * + * * @param id conversation id * @throws IllegalStateException if the current conversation is already marked long-running. * @throws IllegalArgumentException if a conversation with the specified identifier already exists. @@ -70,7 +72,7 @@ public interface Conversation { *

      * Marks the current long-running conversation transient. *

      - * + * * @throws IllegalStateException if the current conversation is already marked transient. */ public void end(); @@ -79,7 +81,7 @@ public interface Conversation { *

      * Get the identifier of the current long-running conversation. *

      - * + * * @return the identifier of the current long-running conversation, or a null value if the current conversation is * transient. */ @@ -89,7 +91,7 @@ public interface Conversation { *

      * Get the timeout of the current conversation. *

      - * + * * @return the current timeout in milliseconds. */ public long getTimeout(); @@ -98,7 +100,7 @@ public interface Conversation { *

      * Set the timeout of the current conversation. *

      - * + * * @param milliseconds the new timeout in milliseconds. */ public void setTimeout(long milliseconds); @@ -107,7 +109,7 @@ public interface Conversation { *

      * Determine if the conversation is marked transient or long-running. *

      - * + * * @return true if the conversation is marked transient, or falseif it is marked long-running. */ public boolean isTransient(); diff --git a/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java b/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java index a3c30e2e..6770be1d 100644 --- a/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java +++ b/api/src/main/java/jakarta/enterprise/context/ConversationScoped.java @@ -32,10 +32,12 @@ *

      * Specifies that a bean is conversation scoped. *

      - *

      - * While ConversationScoped must be associated with the built-in conversation context required by the specification, + *

      + * While ConversationScoped must be associated with the built-in conversation context required by the + * specification, * third-party extensions are - * allowed to also associate it with their own context. Behavior described below is only related to the built-in conversation context. + * allowed to also associate it with their own context. Behavior described below is only related to the built-in conversation + * context. *

      *

      * The conversation scope is active: @@ -44,12 +46,14 @@ *

    • during all Servlet requests.
    • *
    *

    - * An event with qualifier @Initialized(ConversationScoped.class) is fired when the conversation context is initialized + * An event with qualifier @Initialized(ConversationScoped.class) is fired when the conversation context is + * initialized * and an event with qualifier @Destroyed(ConversationScoped.class) is fired when the conversation is destroyed. * The event payload is: *

    *
      - *
    • the conversation id if the conversation context is destroyed and is not associated with a current Servlet request, or
    • + *
    • the conversation id if the conversation context is destroyed and is not associated with a current Servlet request, + * or
    • *
    • the ServletRequest if the application is a web application deployed to a Servlet container, or
    • *
    • any java.lang.Object for other types of application.
    • *
    @@ -63,8 +67,10 @@ *
  • Any Servlet request has exactly one associated conversation.
  • *
  • The container provides a filter with the name "CDI Conversation Filter", which may be mapped in web.xml, * allowing the user alter when the conversation is associated with the servlet request. If this filter is not mapped in any - * web.xml in the application, the conversation associated with a Servlet request is determined at the beginning of the - * request before calling any service() method of any servlet in the web application, calling the doFilter() + * web.xml in the application, the conversation associated with a Servlet request is determined at the beginning of + * the + * request before calling any service() method of any servlet in the web application, calling the + * doFilter() * method of any servlet filter in the web application and before the container calls any ServletRequestListener or * AsyncListener in the web application.
  • * @@ -106,13 +112,15 @@ *
  • The long-running conversation context associated with a request that renders a JSF view is automatically propagated to * any faces request (JSF form submission) that originates from that rendered page.
  • *
  • The long-running conversation context associated with a request that results in a JSF redirect (a redirect resulting from - * a navigation rule or JSF NavigationHandler) is automatically propagated to the resulting non-faces request, and to any other + * a navigation rule or JSF NavigationHandler) is automatically propagated to the resulting non-faces request, and + * to any other * subsequent request to the same URL. This is accomplished via use of a request parameter named cid containing the * unique identifier of the conversation.
  • * * *

    - * When no conversation is propagated to a Servlet request, or if a request parameter named conversationPropagation has + * When no conversation is propagated to a Servlet request, or if a request parameter named conversationPropagation + * has * the value none the request is associated with a new transient conversation. * All long-running conversations are scoped to a particular HTTP servlet session and may not cross session boundaries. * In the following cases, a propagated long-running conversation cannot be restored and re-associated with the request: @@ -125,7 +133,9 @@ * Servlet request, in order to conserve resources. * * - *

    CDI Lite implementations are not required to provide support for conversations.

    + *

    + * CDI Lite implementations are not required to provide support for conversations. + *

    * * @see Conversation * @see NonexistentConversationException diff --git a/api/src/main/java/jakarta/enterprise/context/Dependent.java b/api/src/main/java/jakarta/enterprise/context/Dependent.java index 02583b17..20c3c285 100644 --- a/api/src/main/java/jakarta/enterprise/context/Dependent.java +++ b/api/src/main/java/jakarta/enterprise/context/Dependent.java @@ -26,14 +26,13 @@ import java.lang.annotation.Retention; import java.lang.annotation.Target; +import jakarta.enterprise.context.spi.Context; import jakarta.enterprise.context.spi.Contextual; import jakarta.enterprise.context.spi.CreationalContext; +import jakarta.enterprise.inject.Instance; import jakarta.enterprise.util.AnnotationLiteral; import jakarta.inject.Scope; -import jakarta.enterprise.context.spi.Context; -import jakarta.enterprise.inject.Instance; - /** *

    * Specifies that a bean belongs to the dependent pseudo-scope. @@ -73,13 +72,15 @@ *

    * *

    - * Many instances of beans with scope @Dependent belong to some other bean or Java EE component class instance and are + * Many instances of beans with scope @Dependent belong to some other bean or Java EE component class instance and + * are * called dependent objects. *

    * *