You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2019/07/27 15:37:37 UTC
[myfaces] branch master updated: make
CdiAnnotationProviderExtension optional again
This is an automated email from the ASF dual-hosted git repository.
tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/master by this push:
new 6615aad make CdiAnnotationProviderExtension optional again
6615aad is described below
commit 6615aad99e7578ca9ce2bee042f23be5551ca30f
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Sat Jul 27 17:37:29 2019 +0200
make CdiAnnotationProviderExtension optional again
---
.../main/java/org/apache/myfaces/cdi/util/CDIUtils.java | 15 ++++++++++++++-
.../config/annotation/DefaultAnnotationProvider.java | 7 +++++--
.../apache/myfaces/webapp/AbstractFacesInitializer.java | 2 +-
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/cdi/util/CDIUtils.java b/impl/src/main/java/org/apache/myfaces/cdi/util/CDIUtils.java
index 7ddb853..7645664 100644
--- a/impl/src/main/java/org/apache/myfaces/cdi/util/CDIUtils.java
+++ b/impl/src/main/java/org/apache/myfaces/cdi/util/CDIUtils.java
@@ -46,10 +46,23 @@ public class CDIUtils
public static <T> T get(BeanManager bm, Class<T> clazz)
{
+ return get(bm, clazz, false);
+ }
+
+ public static <T> T get(BeanManager bm, Class<T> clazz, boolean optional)
+ {
Set<Bean<?>> beans = bm.getBeans(clazz);
+ if (beans == null || beans.isEmpty())
+ {
+ if (optional)
+ {
+ return null;
+ }
+ }
+
return resolveInstance(bm, beans, clazz);
}
-
+
private static <T> T resolveInstance(BeanManager bm, Set<Bean<?>> beans, Type type)
{
Bean<?> bean = bm.resolve(beans);
diff --git a/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java b/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
index edc72fe..ec560ee 100644
--- a/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
+++ b/impl/src/main/java/org/apache/myfaces/config/annotation/DefaultAnnotationProvider.java
@@ -145,8 +145,11 @@ public class DefaultAnnotationProvider extends AnnotationProvider
if (MyfacesConfig.getCurrentInstance(ctx).isUseCdiForAnnotationScanning())
{
BeanManager beanManager = CDIUtils.getBeanManager(ctx);
- CdiAnnotationProviderExtension extension = CDIUtils.get(beanManager, CdiAnnotationProviderExtension.class);
- return extension.getMap();
+ CdiAnnotationProviderExtension extension = CDIUtils.get(beanManager, CdiAnnotationProviderExtension.class, true);
+ if (extension != null)
+ {
+ return extension.getMap();
+ }
}
Map<Class<? extends Annotation>,Set<Class<?>>> map = new HashMap<>();
diff --git a/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java b/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
index 44953b5..4f2611a 100644
--- a/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
+++ b/impl/src/main/java/org/apache/myfaces/webapp/AbstractFacesInitializer.java
@@ -269,7 +269,7 @@ public abstract class AbstractFacesInitializer implements FacesInitializer
if (ExternalSpecifications.isCDIAvailable(externalContext))
{
BeanManager beanManager = CDIUtils.getBeanManager(externalContext);
- CdiAnnotationProviderExtension extension = CDIUtils.get(beanManager, CdiAnnotationProviderExtension.class);
+ CdiAnnotationProviderExtension extension = CDIUtils.get(beanManager, CdiAnnotationProviderExtension.class, true);
if (extension != null)
{
extension.release();