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:17:06 UTC

svn commit: r1807867 - in /myfaces/core/branches/2.3.x/impl/src/main: java/org/apache/myfaces/cdi/behavior/ java/org/apache/myfaces/cdi/managedproperty/ resources/META-INF/services/

Author: tandraschko
Date: Sat Sep  9 09:17:06 2017
New Revision: 1807867

URL: http://svn.apache.org/viewvc?rev=1807867&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/behavior/FacesBehaviorInfo.java
      - copied, changed from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/BehaviorInfo.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorProducer.java
      - copied, changed from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/DynamicBehaviorProducer.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyExtension.java
      - copied, changed from r1807864, 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/managedproperty/ManagedPropertyInfo.java
      - copied, changed from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyInfo.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyProducer.java
      - copied, changed from r1807864, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java
Removed:
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/BehaviorInfo.java
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/DynamicBehaviorProducer.java
Modified:
    myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorExtension.java
    myfaces/core/branches/2.3.x/impl/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension

Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorExtension.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorExtension.java?rev=1807867&r1=1807866&r2=1807867&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorExtension.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorExtension.java Sat Sep  9 09:17:06 2017
@@ -35,7 +35,7 @@ import javax.faces.component.behavior.Fa
  */
 public class FacesBehaviorExtension implements Extension
 {
-    private Set<BehaviorInfo> types = new HashSet<BehaviorInfo>();
+    private Set<FacesBehaviorInfo> types = new HashSet<FacesBehaviorInfo>();
 
     public <T> void collect(@Observes ProcessManagedBean<T> event)
     {
@@ -52,7 +52,7 @@ public class FacesBehaviorExtension impl
                 boolean hasValue = conv.value().length() > 0;
                 if (hasValue)
                 {
-                    types.add(new BehaviorInfo(type, conv.value()));
+                    types.add(new FacesBehaviorInfo(type, conv.value()));
                 }
             }
         }
@@ -60,9 +60,9 @@ public class FacesBehaviorExtension impl
     
     public void afterBean(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager)
     {
-        for (BehaviorInfo typeInfo : types)
+        for (FacesBehaviorInfo typeInfo : types)
         {
-            afterBeanDiscovery.addBean(new DynamicBehaviorProducer(beanManager, typeInfo));
+            afterBeanDiscovery.addBean(new FacesBehaviorProducer(beanManager, typeInfo));
         }
     }
 

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorInfo.java (from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/BehaviorInfo.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorInfo.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorInfo.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/BehaviorInfo.java&r1=1807840&r2=1807867&rev=1807867&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/BehaviorInfo.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorInfo.java Sat Sep  9 09:17:06 2017
@@ -26,13 +26,13 @@ import java.util.Objects;
 /**
  *
  */
-public class BehaviorInfo implements Serializable
+public class FacesBehaviorInfo implements Serializable
 {
     private Type type;
     
     private String behaviorId;
 
-    public BehaviorInfo(Type type, String behaviorId)
+    public FacesBehaviorInfo(Type type, String behaviorId)
     {
         this.type = type;
         this.behaviorId = behaviorId;
@@ -84,7 +84,7 @@ public class BehaviorInfo implements Ser
         {
             return false;
         }
-        final BehaviorInfo other = (BehaviorInfo) obj;
+        final FacesBehaviorInfo other = (FacesBehaviorInfo) 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/behavior/FacesBehaviorProducer.java (from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/DynamicBehaviorProducer.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorProducer.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorProducer.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/DynamicBehaviorProducer.java&r1=1807840&r2=1807867&rev=1807867&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/DynamicBehaviorProducer.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/behavior/FacesBehaviorProducer.java Sat Sep  9 09:17:06 2017
@@ -19,132 +19,57 @@
 
 package org.apache.myfaces.cdi.behavior;
 
-import java.io.Serializable;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import static java.util.Arrays.asList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.Typed;
-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.faces.FacesException;
 import javax.faces.component.behavior.Behavior;
+import org.apache.myfaces.cdi.util.AbstractDynamicProducer;
 import org.apache.myfaces.shared.util.ClassUtils;
 
 /**
  *
  */
 @Typed
-public class DynamicBehaviorProducer implements Bean<Behavior>, Serializable, PassivationCapable
+public class FacesBehaviorProducer extends AbstractDynamicProducer<Behavior>
 {
-    private static final long serialVersionUID = 1L;
-
-    private BeanManager beanManager;
-    private BehaviorInfo typeInfo;
-    private Set<Type> types;
-    private Class<?> beanClass;
-
-    public DynamicBehaviorProducer(BeanManager beanManager, BehaviorInfo typeInfo)
-    {
-        this.beanManager = beanManager;
-        this.typeInfo = typeInfo;
-        types = new HashSet<Type>(asList(typeInfo.getType(), Object.class));
-        beanClass = ClassUtils.simpleClassForName(typeInfo.getType().getTypeName());
-    }
-
-    @Override
-    public String getId()
-    {
-        String converterId = typeInfo.getBehaviorId() == null ? "" : typeInfo.getBehaviorId();
-        return ""+typeInfo.getType()+"_"+converterId;
-    }
-
-    @Override
-    public Class<?> getBeanClass()
-    {
-        return beanClass;
-    }
-
-    @Override
-    public Set<Type> getTypes()
-    {
-        return types;
-    }
-    
-    @Override
-    public Set<Annotation> getQualifiers()
-    {
-        return Collections.singleton(
-                (Annotation) new FacesBehaviorAnnotationLiteral(
-                        typeInfo.getBehaviorId() == null ? "" : typeInfo.getBehaviorId(), true));
-    }
-
-    @Override
-    public Class<? extends Annotation> getScope()
+    public FacesBehaviorProducer(BeanManager beanManager, FacesBehaviorInfo typeInfo)
     {
-        return Dependent.class;
+        super(beanManager);
+        
+        FacesBehaviorAnnotationLiteral literal = new FacesBehaviorAnnotationLiteral(
+                        typeInfo.getBehaviorId() == null ? "" : typeInfo.getBehaviorId(), true);
+        
+        String behaviorId = typeInfo.getBehaviorId() == null ? "" : typeInfo.getBehaviorId();
+        String id = "" + typeInfo.getType() + "_" + behaviorId;
+
+        super.id(id)
+                .scope(Dependent.class)
+                .qualifiers(literal)
+                .types(typeInfo.getType(), Object.class)
+                .beanClass(ClassUtils.simpleClassForName(typeInfo.getType().getTypeName()))
+                .create(e -> createBehavior(e));
     }
 
-    @Override
-    public String getName()
+    protected Behavior createBehavior(CreationalContext<Behavior> cc)
     {
-        return null;
-    }
-    
-
-    @Override
-    public Set<Class<? extends Annotation>> getStereotypes()
-    {
-        return Collections.emptySet();
-    }
-
-    @Override
-    public boolean isAlternative()
-    {
-        return false;
-    }
-    
-    @Override
-    public Set<InjectionPoint> getInjectionPoints()
-    {
-        return Collections.emptySet();
-    }
-
-    @Override
-    public boolean isNullable()
-    {
-        return true;
-    }
-    
-    @Override
-    public Behavior create(CreationalContext<Behavior> cc)
-    {
-        Class<? extends Behavior> converterClass = (Class<? extends Behavior>) beanClass;        
+        Class<? extends Behavior> behaviorClass = (Class<? extends Behavior>) getBeanClass();        
         Behavior converter = null;
         try
         {
-            converter = converterClass.newInstance();
+            converter = behaviorClass.newInstance();
         }
         catch (Exception ex)
         {
-            Logger.getLogger(DynamicBehaviorProducer.class.getName()).log(
-                    Level.SEVERE, "Could not instantiate converter " + beanClass.getName(), ex);
-            throw new FacesException("Could not instantiate converter: " + beanClass.getName(), ex);
+            Logger.getLogger(FacesBehaviorProducer.class.getName()).log(
+                    Level.SEVERE, "Could not instantiate behavior " + behaviorClass.getName(), ex);
+            throw new FacesException("Could not instantiate behavior: " + behaviorClass.getName(), ex);
             
         }
         return converter;
     }
 
-    @Override
-    public void destroy(Behavior t, CreationalContext<Behavior> cc)
-    {
-    }
 }

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyExtension.java (from r1807864, 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/managedproperty/ManagedPropertyExtension.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyExtension.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyExtension.java&r1=1807864&r2=1807867&rev=1807867&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/managedproperty/ManagedPropertyExtension.java Sat Sep  9 09:17:06 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.myfaces.cdi.bean;
+package org.apache.myfaces.cdi.managedproperty;
 
 import java.lang.reflect.Type;
 import java.util.HashSet;

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyInfo.java (from r1807840, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyInfo.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyInfo.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyInfo.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyInfo.java&r1=1807840&r2=1807867&rev=1807867&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyInfo.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyInfo.java Sat Sep  9 09:17:06 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.myfaces.cdi.bean;
+package org.apache.myfaces.cdi.managedproperty;
 
 import java.io.Serializable;
 import java.lang.reflect.Type;

Copied: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyProducer.java (from r1807864, myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java)
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyProducer.java?p2=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyProducer.java&p1=myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java&r1=1807864&r2=1807867&rev=1807867&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/bean/ManagedPropertyProducer.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/managedproperty/ManagedPropertyProducer.java Sat Sep  9 09:17:06 2017
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.myfaces.cdi.bean;
+package org.apache.myfaces.cdi.managedproperty;
 
 import java.lang.reflect.ParameterizedType;
 import javax.enterprise.context.Dependent;

Modified: myfaces/core/branches/2.3.x/impl/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension?rev=1807867&r1=1807866&r2=1807867&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension Sat Sep  9 09:17:06 2017
@@ -6,7 +6,7 @@ org.apache.myfaces.flow.cdi.FlowScopeCDI
 org.apache.myfaces.cdi.dependent.DependentBeanExtension
 org.apache.myfaces.config.annotation.CdiAnnotationProviderExtension
 org.apache.myfaces.push.cdi.PushContextCDIExtension
-org.apache.myfaces.cdi.bean.ManagedPropertyExtension
+org.apache.myfaces.cdi.managedproperty.ManagedPropertyExtension
 org.apache.myfaces.cdi.converter.FacesConverterExtension
 org.apache.myfaces.cdi.validator.FacesValidatorExtension
 org.apache.myfaces.cdi.behavior.FacesBehaviorExtension