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 cbf5056fd..1b53fddd5 100644 --- a/api/src/main/java/jakarta/enterprise/inject/se/SeContainerInitializer.java +++ b/api/src/main/java/jakarta/enterprise/inject/se/SeContainerInitializer.java @@ -20,6 +20,7 @@ import java.util.ServiceConfigurationError; import java.util.ServiceLoader; +import jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension; import jakarta.enterprise.inject.spi.Extension; /** @@ -190,22 +191,32 @@ private static SeContainerInitializer findSeContainerInitializer() { public abstract SeContainerInitializer addPackages(boolean scanRecursively, Package... packages); /** - * Add extensions to the set of extensions. + * Add portable extensions to the set of extensions. * - * @param extensions extensions to use in the container + * @param extensions portable extensions to use in the container * @return self */ public abstract SeContainerInitializer addExtensions(Extension... extensions); /** - * Add extensions to the set of extensions. + * Add portable extensions to the set of extensions. * - * @param extensions extensions class to use in the container + * @param extensions portable extension classes to use in the container * @return self */ @SuppressWarnings("unchecked") public abstract SeContainerInitializer addExtensions(Class... extensions); + /** + * Add build compatible extensions to the set of extensions. + * + * @param extensions build compatible extension classes to use in the container + * @return self + */ + @SuppressWarnings("unchecked") + public abstract SeContainerInitializer addBuildCompatibleExtensions( + Class... extensions); + /** * Add interceptor classes to the list of enabled interceptors for the synthetic bean archive. *

diff --git a/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer.java b/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer.java index f58011032..d4b33a03a 100644 --- a/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer.java +++ b/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer.java @@ -17,6 +17,7 @@ import java.lang.annotation.Annotation; import java.util.Map; +import jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension; import jakarta.enterprise.inject.se.SeContainer; import jakarta.enterprise.inject.se.SeContainerInitializer; import jakarta.enterprise.inject.spi.Extension; @@ -64,6 +65,11 @@ public final SeContainerInitializer addExtensions(Class... return null; } + @Override + public SeContainerInitializer addBuildCompatibleExtensions(Class... extensions) { + return null; + } + @Override public SeContainerInitializer enableInterceptors(Class... interceptorClasses) { return null; diff --git a/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer2.java b/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer2.java index 952bd7964..6cd9aca5a 100644 --- a/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer2.java +++ b/api/src/test/java/org/jboss/cdi/api/test/se/DummySeContainerInitializer2.java @@ -17,6 +17,7 @@ import java.lang.annotation.Annotation; import java.util.Map; +import jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension; import jakarta.enterprise.inject.se.SeContainer; import jakarta.enterprise.inject.se.SeContainerInitializer; import jakarta.enterprise.inject.spi.Extension; @@ -64,6 +65,11 @@ public final SeContainerInitializer addExtensions(Class... return null; } + @Override + public SeContainerInitializer addBuildCompatibleExtensions(Class... extensions) { + return null; + } + @Override public SeContainerInitializer enableInterceptors(Class... interceptorClasses) { return null; diff --git a/spec/src/main/asciidoc/javase/bootstrap_se.asciidoc b/spec/src/main/asciidoc/javase/bootstrap_se.asciidoc index 14bea59c7..b01fd0150 100644 --- a/spec/src/main/asciidoc/javase/bootstrap_se.asciidoc +++ b/spec/src/main/asciidoc/javase/bootstrap_se.asciidoc @@ -46,6 +46,7 @@ public abstract class SeContainerInitializer { public SeContainerInitializer addPackages(boolean scanRecursively, Package... packages); public SeContainerInitializer addExtensions(Extension... extensions); public SeContainerInitializer addExtensions(Class... extensions); + public SeContainerInitializer addBuildCompatibleExtensions(Class... extensions); public SeContainerInitializer enableInterceptors(Class... interceptorClasses); public SeContainerInitializer enableDecorators(Class... decoratorClasses); public SeContainerInitializer selectAlternatives(Class... alternativeClasses); @@ -65,7 +66,8 @@ Each call returns a new instance of `SeContainerInitializer`. This method throws * `addBeanClasses()` adds classes to the the synthetic bean archive * `addPackages()` adds packages content to the synthetic bean archive. There are other versions of this method, which enables user to add a package according to class or classes it contains and also to add packages recursively. -* `addExtensions()` adds the provided extensions (class or instance) to the synthetic bean archive. +* `addExtensions()` adds the provided portable extensions (class or instance) to the synthetic bean archive. +* `addBuildCompatibleExtensions()` adds the provided build compatible extensions (classes) to the synthetic bean archive. * `enableInterceptors()` adds interceptor classes to the list of enabled interceptors for the synthetic bean archive. * `enableDecorators()` adds decorator classes to the list of enabled decorators for the synthetic bean archive. * `selectAlternatives()` adds alternatives classes to the list of selected alternatives for the synthetic bean archive.