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 2017/09/09 09:05:19 UTC

svn commit: r1807864 - in /myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi: bean/ converter/ validator/

Author: tandraschko
Date: Sat Sep  9 09:05:18 2017
New Revision: 1807864

URL: http://svn.apache.org/viewvc?rev=1807864&view=rev
Log:
MYFACES-4127 refactored other producers to reuse AbstractDynamicProducer

Added:
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java
      - copied, changed from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/DynamicManagedPropertyProducer.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterInfo.java
      - copied, changed from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/ConverterInfo.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterProducer.java
      - copied, changed from r1807859, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/DynamicConverterProducer.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorInfo.java
      - copied, changed from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/ValidatorInfo.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorProducer.java
      - copied, changed from r1807859, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/DynamicValidatorProducer.java
Removed:
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/DynamicManagedPropertyProducer.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/ConverterInfo.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/DynamicConverterProducer.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/DynamicValidatorProducer.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/ValidatorInfo.java
Modified:
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyExtension.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterExtension.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorExtension.java

Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyExtension.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyExtension.java?rev=1807864&r1=1807863&r2=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyExtension.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyExtension.java Sat Sep  9 09:05:18 2017
@@ -59,7 +59,7 @@ public class ManagedPropertyExtension im
     {
         for (ManagedPropertyInfo typeInfo : types)
         {
-            afterBeanDiscovery.addBean(new DynamicManagedPropertyProducer(beanManager, typeInfo));
+            afterBeanDiscovery.addBean(new ManagedPropertyProducer(beanManager, typeInfo));
         }
     }
 }

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java (from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/DynamicManagedPropertyProducer.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/DynamicManagedPropertyProducer.java&r1=1807840&r2=1807864&rev=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/DynamicManagedPropertyProducer.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java Sat Sep  9 09:05:18 2017
@@ -19,70 +19,28 @@
 
 package org.apache.myfaces.cdi.bean;
 
-import java.io.Serializable;
-import java.lang.annotation.Annotation;
 import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import static java.util.Arrays.asList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
-import javax.enterprise.inject.spi.InjectionPoint;
-import javax.enterprise.inject.spi.PassivationCapable;
 import javax.enterprise.util.AnnotationLiteral;
 import javax.faces.annotation.ManagedProperty;
 import javax.faces.context.FacesContext;
+import org.apache.myfaces.cdi.util.AbstractDynamicProducer;
 import org.apache.myfaces.shared.util.ClassUtils;
 
 /**
  *
  */
-public class DynamicManagedPropertyProducer implements Bean<Object>, Serializable, PassivationCapable
+public class ManagedPropertyProducer extends AbstractDynamicProducer<Object>
 {
-    private static final long serialVersionUID = 1L;
-    
-
-    private BeanManager beanManager;
-    private ManagedPropertyInfo typeInfo;
-    private Set<Type> types;
-    private Class<?> beanClass;
-
-    public DynamicManagedPropertyProducer(BeanManager beanManager, ManagedPropertyInfo typeInfo)
-    {
-        this.beanManager = beanManager;
-        this.typeInfo = typeInfo;
-        types = new HashSet<Type>(asList(typeInfo.getType(), Object.class));
-        Type beanType = typeInfo.getType();
-        // Need to check for ParameterizedType to support types such as List<String>
-        if ( beanType instanceof ParameterizedType ) 
-        {
-            beanClass = ClassUtils.simpleClassForName(((ParameterizedType) beanType).getRawType().getTypeName());
-        }
-        else 
-        {
-        // need to use simpleJavaTypeToClass to support Arrays and primitive types
-            beanClass = ClassUtils.simpleJavaTypeToClass(beanType.getTypeName());
-        }
-
-    }
-    
-    @Override
-    public String getId()
-    {
-        return typeInfo.getType()+"_"+typeInfo.getExpression();
-    }
-
-    public static class DefaultAnnotationLiteral extends AnnotationLiteral<ManagedProperty> implements ManagedProperty
+    class ManagedPropertyAnnotationLiteral extends AnnotationLiteral<ManagedProperty> implements ManagedProperty
     {
         private static final long serialVersionUID = 1L;
         
         private String value;
 
-        public DefaultAnnotationLiteral(String value)
+        public ManagedPropertyAnnotationLiteral(String value)
         {
             this.value = value;
         }
@@ -94,74 +52,35 @@ public class DynamicManagedPropertyProdu
         }
     }
     
-    @Override
-    public Class<?> getBeanClass()
-    {
-        return beanClass;
-    }
-
-    @Override
-    public Set<Type> getTypes()
-    {
-        return types;
-    }
-    
-    @Override
-    public Set<Annotation> getQualifiers()
-    {
-        return Collections.singleton(
-                (Annotation) new DynamicManagedPropertyProducer.DefaultAnnotationLiteral(typeInfo.getExpression()));
-    }
-    
-
-    @Override
-    public Class<? extends Annotation> getScope()
-    {
-        return Dependent.class;
-    }
-
-    @Override
-    public String getName()
-    {
-        return null;
-    }
-    
-
-    @Override
-    public Set<Class<? extends Annotation>> getStereotypes()
+    public ManagedPropertyProducer(BeanManager beanManager, ManagedPropertyInfo typeInfo)
     {
-        return Collections.emptySet();
-    }
+        super(beanManager);
+        
+        Class<?> beanClass;
+        // Need to check for ParameterizedType to support types such as List<String>
+        if (typeInfo.getType() instanceof ParameterizedType) 
+        {
+            beanClass = ClassUtils.simpleClassForName(
+                    ((ParameterizedType) typeInfo.getType()).getRawType().getTypeName());
+        }
+        else 
+        {
+            // need to use simpleJavaTypeToClass to support Arrays and primitive types
+            beanClass = ClassUtils.simpleJavaTypeToClass(typeInfo.getType().getTypeName());
+        }
 
-    @Override
-    public boolean isAlternative()
-    {
-        return false;
-    }
-    
-    @Override
-    public Set<InjectionPoint> getInjectionPoints()
-    {
-        return Collections.emptySet();
+        super.id(typeInfo.getType() + "_" + typeInfo.getExpression())
+                .scope(Dependent.class)
+                .qualifiers(new ManagedPropertyAnnotationLiteral(typeInfo.getExpression()))
+                .types(typeInfo.getType(), Object.class)
+                .beanClass(beanClass)
+                .create(e -> createManagedProperty(e, typeInfo));
     }
 
-    @Override
-    public boolean isNullable()
-    {
-        return true;
-    }
-    
-    @Override
-    public Object create(CreationalContext<Object> cc)
+    protected Object createManagedProperty(CreationalContext<Object> cc, ManagedPropertyInfo typeInfo)
     {
         FacesContext facesContext = FacesContext.getCurrentInstance();
         return facesContext.getApplication().evaluateExpressionGet(
-                facesContext, typeInfo.getExpression(), beanClass);
-    }
-
-    @Override
-    public void destroy(Object t, CreationalContext<Object> cc)
-    {
+                facesContext, typeInfo.getExpression(), getBeanClass());
     }
-    
 }

Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterExtension.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterExtension.java?rev=1807864&r1=1807863&r2=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterExtension.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterExtension.java Sat Sep  9 09:05:18 2017
@@ -35,7 +35,7 @@ import javax.faces.convert.FacesConverte
  */
 public class FacesConverterExtension implements Extension
 {
-    private Set<ConverterInfo> types = new HashSet<ConverterInfo>();
+    private Set<FacesConverterInfo> types = new HashSet<FacesConverterInfo>();
 
     public <T> void collect(@Observes ProcessManagedBean<T> event)
     {
@@ -55,11 +55,11 @@ public class FacesConverterExtension imp
                 {
                     if (hasForClass)
                     {
-                        types.add(new ConverterInfo(type, conv.forClass(), ""));
+                        types.add(new FacesConverterInfo(type, conv.forClass(), ""));
                     }
                     if (hasValue)
                     {
-                        types.add(new ConverterInfo(type, Object.class, conv.value()));
+                        types.add(new FacesConverterInfo(type, Object.class, conv.value()));
                     }
                 }
             }
@@ -68,9 +68,9 @@ public class FacesConverterExtension imp
     
     public void afterBean(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager)
     {
-        for (ConverterInfo typeInfo : types)
+        for (FacesConverterInfo typeInfo : types)
         {
-            afterBeanDiscovery.addBean(new DynamicConverterProducer(beanManager, typeInfo));
+            afterBeanDiscovery.addBean(new FacesConverterProducer(beanManager, typeInfo));
         }
     }
 

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterInfo.java (from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/ConverterInfo.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterInfo.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterInfo.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/ConverterInfo.java&r1=1807840&r2=1807864&rev=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/ConverterInfo.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterInfo.java Sat Sep  9 09:05:18 2017
@@ -26,7 +26,7 @@ import java.util.Objects;
 /**
  *
  */
-public class ConverterInfo implements Serializable
+public class FacesConverterInfo implements Serializable
 {
     private Type type;
     
@@ -34,7 +34,7 @@ public class ConverterInfo implements Se
     
     private String converterId;
 
-    public ConverterInfo(Type type, Class forClass, String converterId)
+    public FacesConverterInfo(Type type, Class forClass, String converterId)
     {
         this.type = type;
         this.forClass = forClass;
@@ -98,7 +98,7 @@ public class ConverterInfo implements Se
         {
             return false;
         }
-        final ConverterInfo other = (ConverterInfo) obj;
+        final FacesConverterInfo other = (FacesConverterInfo) obj;
         if (!Objects.equals(this.type, other.type))
         {
             return false;

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterProducer.java (from r1807859, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/DynamicConverterProducer.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterProducer.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterProducer.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/DynamicConverterProducer.java&r1=1807859&r2=1807864&rev=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/DynamicConverterProducer.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/converter/FacesConverterProducer.java Sat Sep  9 09:05:18 2017
@@ -34,9 +34,9 @@ import org.apache.myfaces.shared.util.Cl
  *
  */
 @Typed
-public class DynamicConverterProducer extends AbstractDynamicProducer<Converter>
+public class FacesConverterProducer extends AbstractDynamicProducer<Converter>
 {
-    public DynamicConverterProducer(BeanManager beanManager, ConverterInfo typeInfo)
+    public FacesConverterProducer(BeanManager beanManager, FacesConverterInfo typeInfo)
     {
         super(beanManager);
         
@@ -67,7 +67,7 @@ public class DynamicConverterProducer ex
         }
         catch (Exception ex)
         {
-            Logger.getLogger(DynamicConverterProducer.class.getName()).log(
+            Logger.getLogger(FacesConverterProducer.class.getName()).log(
                     Level.SEVERE, "Could not instantiate converter " + converterClass.getName(), ex);
             throw new FacesException("Could not instantiate converter: " + converterClass.getName(), ex);
             

Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorExtension.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorExtension.java?rev=1807864&r1=1807863&r2=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorExtension.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorExtension.java Sat Sep  9 09:05:18 2017
@@ -35,7 +35,7 @@ import javax.faces.validator.FacesValida
  */
 public class FacesValidatorExtension implements Extension
 {
-    private Set<ValidatorInfo> types = new HashSet<ValidatorInfo>();
+    private Set<FacesValidatorInfo> types = new HashSet<FacesValidatorInfo>();
 
     public <T> void collect(@Observes ProcessManagedBean<T> event)
     {
@@ -52,7 +52,7 @@ public class FacesValidatorExtension imp
                 boolean hasValue = conv.value().length() > 0;
                 if (hasValue)
                 {
-                    types.add(new ValidatorInfo(type, conv.value()));
+                    types.add(new FacesValidatorInfo(type, conv.value()));
                 }
             }
         }
@@ -60,9 +60,9 @@ public class FacesValidatorExtension imp
     
     public void afterBean(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager)
     {
-        for (ValidatorInfo typeInfo : types)
+        for (FacesValidatorInfo typeInfo : types)
         {
-            afterBeanDiscovery.addBean(new DynamicValidatorProducer(beanManager, typeInfo));
+            afterBeanDiscovery.addBean(new FacesValidatorProducer(beanManager, typeInfo));
         }
     }
 

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorInfo.java (from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/ValidatorInfo.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorInfo.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorInfo.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/ValidatorInfo.java&r1=1807840&r2=1807864&rev=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/ValidatorInfo.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorInfo.java Sat Sep  9 09:05:18 2017
@@ -26,13 +26,13 @@ import java.util.Objects;
 /**
  *
  */
-public class ValidatorInfo implements Serializable
+public class FacesValidatorInfo implements Serializable
 {
     private Type type;
     
     private String validatorId;
 
-    public ValidatorInfo(Type type, String validatorId)
+    public FacesValidatorInfo(Type type, String validatorId)
     {
         this.type = type;
         this.validatorId = validatorId;
@@ -84,7 +84,7 @@ public class ValidatorInfo implements Se
         {
             return false;
         }
-        final ValidatorInfo other = (ValidatorInfo) obj;
+        final FacesValidatorInfo other = (FacesValidatorInfo) obj;
         if (!Objects.equals(this.type, other.type))
         {
             return false;

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorProducer.java (from r1807859, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/DynamicValidatorProducer.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorProducer.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorProducer.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/DynamicValidatorProducer.java&r1=1807859&r2=1807864&rev=1807864&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/DynamicValidatorProducer.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/validator/FacesValidatorProducer.java Sat Sep  9 09:05:18 2017
@@ -34,9 +34,9 @@ import org.apache.myfaces.shared.util.Cl
  *
  */
 @Typed
-public class DynamicValidatorProducer extends AbstractDynamicProducer<Validator>
+public class FacesValidatorProducer extends AbstractDynamicProducer<Validator>
 {
-    public DynamicValidatorProducer(BeanManager beanManager, ValidatorInfo typeInfo)
+    public FacesValidatorProducer(BeanManager beanManager, FacesValidatorInfo typeInfo)
     {
         super(beanManager);
         
@@ -64,7 +64,7 @@ public class DynamicValidatorProducer ex
         }
         catch (Exception ex)
         {
-            Logger.getLogger(DynamicValidatorProducer.class.getName()).log(
+            Logger.getLogger(FacesValidatorProducer.class.getName()).log(
                     Level.SEVERE, "Could not instantiate converter " + converterClass.getName(), ex);
             throw new FacesException("Could not instantiate converter: " + converterClass.getName(), ex);