[webbeans-commits] Webbeans SVN: r2951 - ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard and 3 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Wed Jul 1 17:51:21 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-07-01 17:51:21 -0400 (Wed, 01 Jul 2009)
New Revision: 2951

Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/event/SimpleEventTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/registerUsingEvent/FinchKeeper.java
Log:
Fix failing test, make defaulting annotations for events hacky and simple for now

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -80,6 +80,8 @@
 import org.jboss.webbeans.event.EventObserver;
 import org.jboss.webbeans.event.ObserverImpl;
 import org.jboss.webbeans.introspector.WBAnnotated;
+import org.jboss.webbeans.literal.AnyLiteral;
+import org.jboss.webbeans.literal.CurrentLiteral;
 import org.jboss.webbeans.log.Log;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.manager.api.WebBeansManager;
@@ -487,6 +489,13 @@
       {
          throw new IllegalArgumentException("Duplicate binding types: " + bindings);
       }
+      
+      // Manually hack in the default annotations here. We need to redo all the annotation defaulting throughout. PLM
+      if (bindingAnnotations.size() == 0)
+      {
+         bindingAnnotations.add(new CurrentLiteral());
+      }
+      bindingAnnotations.add(new AnyLiteral());
       checkEventType(clazz);
       Set<Observer<T>> observers = new HashSet<Observer<T>>();
       Set<EventObserver<?>> eventObservers = observerResolver.resolve(ResolvableFactory.of(new Reflections.HierarchyDiscovery(clazz).getFlattenedTypes(),  bindingAnnotations));
@@ -769,7 +778,7 @@
             throw new IllegalArgumentException("Event type " + event.getClass().getName() + " cannot be fired with non-binding type " + binding.getClass().getName() + " specified");
          }
       }
-
+      
       Set<Observer<Object>> observers = resolveObservers(event, bindings);
       try
       {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -19,7 +19,6 @@
 import java.io.Serializable;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
@@ -95,13 +94,6 @@
       return manager.getCurrent();
    }
    
-   protected static Set<Annotation> removeBindings(Set<Annotation> bindings, Annotation...remove)
-   {
-      Set<Annotation> a = new HashSet<Annotation>(bindings);
-      a.removeAll(Arrays.asList(remove));
-      return a;
-   }
-   
    protected Set<? extends Annotation> getBindings()
    {
       return Collections.unmodifiableSet(bindings);

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -19,7 +19,6 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
-import java.util.HashSet;
 import java.util.Set;
 
 import javax.enterprise.context.spi.CreationalContext;
@@ -52,7 +51,7 @@
             if (genericType instanceof ParameterizedType )
             {
                Type type = ((ParameterizedType) genericType).getActualTypeArguments()[0];
-               return newInstance(type, fixBindings(injectionPoint.getBindings()));
+               return newInstance(type, injectionPoint.getBindings());
             }
             else
             {
@@ -71,28 +70,6 @@
       }
    }
    
-   /**
-    * Merges and validates the current and new bindings
-    * 
-    * Checks with an abstract method for annotations to exclude
-    * 
-    * @param currentBindings Existing bindings
-    * @param newBindings New bindings
-    * @return The union of the bindings
-    */
-   protected Set<Annotation> fixBindings(Set<? extends Annotation> bindings)
-   {
-      Set<Annotation> result = new HashSet<Annotation>();
-      for (Annotation newAnnotation : bindings)
-      {
-         if (!getFilteredAnnotationTypes().contains(newAnnotation.annotationType()))
-         {
-            result.add(newAnnotation);
-         }
-      }
-      return result;
-   }
-   
    public void destroy(T instance, CreationalContext<T> creationalContext)
    {
       // TODO Auto-generated method stub
@@ -103,13 +80,6 @@
    {
       return true;
    }
-
-   /**
-    * Gets a set of annotation classes to ignore
-    * 
-    * @return A set of annotation classes to ignore
-    */
-   protected abstract Set<Class<? extends Annotation>> getFilteredAnnotationTypes();
    
    protected abstract T newInstance(Type type, Set<Annotation> annotations);
    

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -23,7 +23,6 @@
 import java.util.Set;
 
 import javax.enterprise.event.Event;
-import javax.enterprise.inject.Any;
 import javax.enterprise.inject.TypeLiteral;
 
 import org.jboss.webbeans.BeanManagerImpl;
@@ -39,7 +38,6 @@
    private static final Annotation                       ANY                       = new AnyLiteral();
    private static final Set<Annotation>                  DEFAULT_BINDINGS          = new HashSet<Annotation>(Arrays.asList(ANY));
    public static final ResolvableTransformer          TRANSFORMER               = new FacadeBeanResolvableTransformer(TYPE);
-   private static final Set<Class<? extends Annotation>> FILTERED_ANNOTATION_TYPES = new HashSet<Class<? extends Annotation>>(Arrays.asList(Any.class));
    
    
    public static AbstractFacadeBean<Event<?>> of(BeanManagerImpl manager)
@@ -74,12 +72,6 @@
    {
       return EventImpl.of(type, getManager(), annotations);
    }
-
-   @Override
-   protected Set<Class<? extends Annotation>> getFilteredAnnotationTypes()
-   {
-      return FILTERED_ANNOTATION_TYPES;
-   }
    
    @Override
    public String toString()

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -38,7 +38,6 @@
    private static final Set<Type> DEFAULT_TYPES = new HashSet<Type>(Arrays.asList(TYPE, Object.class));
    private static final Any ANY = new AnyLiteral();
    private static final Set<Annotation> DEFAULT_BINDINGS = new HashSet<Annotation>(Arrays.asList(ANY));
-   private static final Set<Class<? extends Annotation>> FILTERED_ANNOTATION_TYPES = new HashSet<Class<? extends Annotation>>(Arrays.asList(Any.class));
    public static final ResolvableTransformer TRANSFORMER = new FacadeBeanResolvableTransformer(TYPE);
    
    
@@ -74,12 +73,6 @@
    {
       return InstanceImpl.of(type, getManager(), annotations);
    }
-
-   @Override
-   protected Set<Class<? extends Annotation>> getFilteredAnnotationTypes()
-   {
-      return FILTERED_ANNOTATION_TYPES;
-   }
    
    @Override
    public String toString()

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -26,7 +26,6 @@
 
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.FacadeImpl;
-import org.jboss.webbeans.literal.AnyLiteral;
 import org.jboss.webbeans.util.Strings;
 
 /**
@@ -57,7 +56,7 @@
     */
    public EventImpl(Type eventType, BeanManagerImpl manager, Set<Annotation> bindings)
    {
-      super(eventType, manager, removeBindings(bindings, new AnyLiteral()));
+      super(eventType, manager, bindings);
    }
 
    /**

Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/event/SimpleEventTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/event/SimpleEventTest.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/event/SimpleEventTest.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -4,72 +4,70 @@
 import javax.enterprise.event.Observes;
 import javax.enterprise.inject.AnnotationLiteral;
 import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Current;
 
 import org.jboss.testharness.impl.packaging.Artifact;
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.test.AbstractWebBeansTest;
 import org.testng.annotations.Test;
 
- at Artifact
+ at Artifact 
 public class SimpleEventTest extends AbstractWebBeansTest
 {
-   private static boolean called_flag_for_BindingType;
-   private static boolean called_flag_for_NonBindingType;
+   private static boolean RECEIVE_1_OBSERVED;
+   private static boolean RECEIVE_2_OBSERVED;
    
-   private static void initCalledFlag() {
-      called_flag_for_BindingType = false;
-      called_flag_for_NonBindingType = false;
+   private static void initFlags() {
+      RECEIVE_1_OBSERVED = false;
+      RECEIVE_2_OBSERVED = false;
    }
    
    @Test
-   public void testEventUsingManager()
+   public void testFireEventOnManager()
    {
       BeanManagerImpl manager = getCurrentManager();
       
-      initCalledFlag();
+      initFlags();
 
-      manager.fireEvent("Fired using Manager Interface with AnnotationLiteral.",
-            new AnnotationLiteral<Updated>(){});
+      manager.fireEvent("Fired using Manager Interface with AnnotationLiteral.", new AnnotationLiteral<Updated>(){});
 
-      assert called_flag_for_NonBindingType == true;
-      assert called_flag_for_BindingType == true;
+      assert RECEIVE_2_OBSERVED == true;
+      assert RECEIVE_1_OBSERVED == true;
       
-      initCalledFlag();
+      initFlags();
       
       manager.fireEvent("Fired using Manager Interface.");
       
-      assert called_flag_for_NonBindingType == true;
-      assert called_flag_for_BindingType == false; // not called
+      assert RECEIVE_2_OBSERVED == true;
+      assert RECEIVE_1_OBSERVED == false; // not called
    }
    
    @Test
-   public void testEventUsingEvent()
+   public void testFireEventOnEvent()
    {
       BeanManagerImpl manager = getCurrentManager();
 
-      App app = manager.getInstanceByType(App.class);
+      App app = createContextualInstance(App.class);
       
-      initCalledFlag();
+      initFlags();
       
-//      app.fireEventByBindingDeclaredAtInjectionPoint();
-//
-//      assert called_flag_for_NonBindingType == true;
-//      assert called_flag_for_BindingType == true;
+      app.fireEventByBindingDeclaredAtInjectionPoint();
+
+      assert RECEIVE_1_OBSERVED == true;
+      assert RECEIVE_2_OBSERVED == true;
       
-      initCalledFlag();
+      initFlags();
       
       app.fireEventByAnnotationLiteral();
       
-      assert called_flag_for_NonBindingType == true;
-      assert called_flag_for_BindingType == true;
+      assert RECEIVE_2_OBSERVED == true;
+      assert RECEIVE_1_OBSERVED == true;
       
-      initCalledFlag();
+      initFlags();
       
-      app.fireEventNonBindingType();
+      app.fireEventViaAny();
       
-      assert called_flag_for_NonBindingType == true;
-      assert called_flag_for_BindingType == false; // not called
+      assert RECEIVE_2_OBSERVED == true;
+      assert RECEIVE_1_OBSERVED == false; // not called
    }
 
    public static class App
@@ -94,7 +92,7 @@
          event2.fire("Fired using Event Interface with Binding Declared.");
       }
       
-      public void fireEventNonBindingType()
+      public void fireEventViaAny()
       {
          event3.fire("Fired using Event Interface with Non-BindingType.");
       }
@@ -104,12 +102,12 @@
    {
       public void receive1(@Observes @Updated String s)
       {
-         called_flag_for_BindingType = true;
+         RECEIVE_1_OBSERVED = true;
       }
 
-      public void receive2(@Observes String s)
+      public void receive2(@Any @Observes String s)
       {
-         called_flag_for_NonBindingType = true;
+         RECEIVE_2_OBSERVED = true;
       }
    }
 }
\ No newline at end of file

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/registerUsingEvent/FinchKeeper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/registerUsingEvent/FinchKeeper.java	2009-07-01 21:07:14 UTC (rev 2950)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/registerUsingEvent/FinchKeeper.java	2009-07-01 21:51:21 UTC (rev 2951)
@@ -11,7 +11,7 @@
 {
    private boolean newMessDetected = false;
 
-   public void observesMesses(@Tame @Any @Observes Mess aNewMess)
+   public void observesMesses(@Any @Observes Mess aNewMess)
    {
       newMessDetected = true;
    }




More information about the weld-commits mailing list