[weld-commits] Weld SVN: r4698 - in core/trunk: tests/src/test/java/org/jboss/weld/tests/extensions and 1 other directories.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Thu Nov 5 10:06:45 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-05 10:06:45 -0500 (Thu, 05 Nov 2009)
New Revision: 4698

Added:
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Cow.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/CowLocal.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionObserver.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Horse.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/OtherObserver.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Rat.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Special.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Stable.java
Removed:
   core/trunk/impl/src/main/java/org/jboss/weld/event/AsynchronousTransactionalEventNotification.java
Modified:
   core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/event/TransactionalObserverMethodImpl.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionTest.java
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/extensions/javax.enterprise.inject.spi.Extension
Log:
WELD-243

Deleted: core/trunk/impl/src/main/java/org/jboss/weld/event/AsynchronousTransactionalEventNotification.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/AsynchronousTransactionalEventNotification.java	2009-11-05 09:38:05 UTC (rev 4697)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/AsynchronousTransactionalEventNotification.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -1,62 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,  
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.weld.event;
-
-import static org.jboss.weld.messages.EventMessage.ASYNC_OBSERVER_FAILURE;
-import static org.jboss.weld.messages.EventMessage.ASYNC_TX_FIRE;
-import static org.jboss.weld.util.log.Category.EVENT;
-import static org.jboss.weld.util.log.LoggerFactory.loggerFactory;
-
-import org.slf4j.cal10n.LocLogger;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLogger.Level;
-
-/**
- * A deferred event notification that will be delivered during the appropriate
- * transaction phase, but asynchronously from the thread which generated the
- * event.
- * 
- * @author David Allen
- *
- */
-public class AsynchronousTransactionalEventNotification<T> extends DeferredEventNotification<T>
-{
-   private static final LocLogger log = loggerFactory().getLogger(EVENT);
-   private static final XLogger xLog = loggerFactory().getXLogger(EVENT);
-
-   public AsynchronousTransactionalEventNotification(T event, ObserverMethodImpl<T, ?> observer)
-   {
-      super(event, observer);
-   }
-
-   @Override
-   public void run()
-   {
-      // Let the event be deferred again as just an asynchronous event
-      try
-      {
-         log.trace(ASYNC_TX_FIRE, event, observer);
-         observer.sendEventAsynchronously(event);
-      }
-      catch (Exception e)
-      {
-         log.error(ASYNC_OBSERVER_FAILURE, event);
-         xLog.throwing(Level.DEBUG, e);
-      }
-   }
-
-}

Modified: core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java	2009-11-05 09:38:05 UTC (rev 4697)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -31,20 +31,20 @@
 import javax.enterprise.inject.Disposes;
 import javax.enterprise.inject.New;
 import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.ObserverMethod;
 import javax.inject.Inject;
 import javax.inject.Qualifier;
 
 import org.jboss.weld.BeanManagerImpl;
-import org.jboss.weld.Container;
 import org.jboss.weld.DefinitionException;
 import org.jboss.weld.bean.RIBean;
+import org.jboss.weld.bootstrap.events.AbstractContainerEvent;
 import org.jboss.weld.injection.MethodInjectionPoint;
 import org.jboss.weld.injection.WeldInjectionPoint;
 import org.jboss.weld.introspector.WeldMethod;
 import org.jboss.weld.introspector.WeldParameter;
 import org.jboss.weld.literal.AnyLiteral;
-import org.jboss.weld.manager.api.ExecutorServices;
 import org.jboss.weld.util.Beans;
 
 /**
@@ -192,6 +192,10 @@
 
    public void notify(final T event)
    {
+      if (ignore(event))
+      {
+         return;
+      }
       sendEvent(event);
    }
 
@@ -206,7 +210,6 @@
       CreationalContext<?> creationalContext = null;
       try
       {
-         // Get the most specialized instance of the component
          if (notifyType.equals(Reception.ALWAYS))
          {
             creationalContext = manager.createCreationalContext(declaringBean);
@@ -229,17 +232,6 @@
       }
    }
 
-   /**
-    * Queues the event for later execution
-    * 
-    * @param event
-    */
-   protected void sendEventAsynchronously(final T event)
-   {
-      DeferredEventNotification<T> deferredEvent = new DeferredEventNotification<T>(event, this);
-      Container.instance().deploymentServices().get(ExecutorServices.class).getTaskExecutor().execute(deferredEvent);
-   }
-
    @Override
    public String toString()
    {
@@ -249,5 +241,19 @@
       builder.append("  Observer method: " + observerMethod);
       return builder.toString();
    }
+   
+   protected boolean ignore(T event)
+   {
+      Class<?> eventType = event.getClass();
+      if (AbstractContainerEvent.class.isAssignableFrom(eventType))
+      {
+         // This is a container lifeycle event, ensure we are firing to an extension
+         if (!Extension.class.isAssignableFrom(getBeanClass()))
+         {
+            return true;
+         }
+      }
+      return false;
+   }
 
 }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/event/TransactionalObserverMethodImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/TransactionalObserverMethodImpl.java	2009-11-05 09:38:05 UTC (rev 4697)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/TransactionalObserverMethodImpl.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -53,6 +53,10 @@
    @Override
    public void notify(T event)
    {
+      if (ignore(event))
+      {
+         return;
+      }
       if ((manager.getServices().get(TransactionServices.class) != null)  && (manager.getServices().get(TransactionServices.class).isTransactionActive()))
       {
          deferEvent(event);

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Cow.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Cow.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Cow.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,9 @@
+package org.jboss.weld.tests.extensions;
+
+import javax.ejb.Stateless;
+
+ at Stateless
+public class Cow implements CowLocal
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Cow.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/CowLocal.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/CowLocal.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/CowLocal.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,9 @@
+package org.jboss.weld.tests.extensions;
+
+import javax.ejb.Local;
+
+ at Local
+public interface CowLocal
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/CowLocal.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionObserver.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionObserver.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionObserver.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,279 @@
+package org.jboss.weld.tests.extensions;
+
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.AfterDeploymentValidation;
+import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
+import javax.enterprise.inject.spi.ProcessBean;
+import javax.enterprise.inject.spi.ProcessInjectionTarget;
+import javax.enterprise.inject.spi.ProcessManagedBean;
+import javax.enterprise.inject.spi.ProcessObserverMethod;
+import javax.enterprise.inject.spi.ProcessProducer;
+import javax.enterprise.inject.spi.ProcessProducerField;
+import javax.enterprise.inject.spi.ProcessProducerMethod;
+import javax.enterprise.inject.spi.ProcessSessionBean;
+
+public class ExtensionObserver implements Extension
+{
+   
+   private boolean allBeforeBeanDiscovery;
+   private boolean allAfterBeanDiscovery;
+   private boolean allAfterDeploymentValidation;
+   private boolean allProcessBean;
+   private boolean allProcessInjectionTarget;
+   private boolean allProcessManagedBean;
+   private boolean allProcessObserverMethod;
+   private boolean allProcessProducer;
+   private boolean allProcessProducerField;
+   private boolean allProcessProducerMethod;
+   private boolean allProcessSessionBean;
+   private boolean allProcessAnnnotatedType;
+   
+   private boolean beforeBeanDiscovery;
+   private boolean afterBeanDiscovery;
+   private boolean afterDeploymentValidation;
+   private boolean processBean;
+   private boolean processInjectionTarget;
+   private boolean processManagedBean;
+   private boolean processObserverMethod;
+   private boolean processProducer;
+   private boolean processProducerField;
+   private boolean processProducerMethod;
+   private boolean processSessionBean;
+   private boolean processAnnotatedType;
+
+   public void observeAll(@Observes Object event)
+   {
+      if (event instanceof BeforeBeanDiscovery)
+      {
+         allBeforeBeanDiscovery = true;
+      }
+      if (event instanceof AfterBeanDiscovery)
+      {
+         allAfterBeanDiscovery = true;
+      }
+      if (event instanceof AfterDeploymentValidation)
+      {
+         allAfterDeploymentValidation = true;
+      }
+      if (event instanceof ProcessBean<?> && !(event instanceof ProcessProducerField<?, ?> || event instanceof ProcessProducerMethod<?, ?> || event instanceof ProcessManagedBean<?> || event instanceof ProcessSessionBean<?>))
+      {
+         allProcessBean = true;
+      }
+      if (event instanceof ProcessInjectionTarget<?>)
+      {
+         allProcessInjectionTarget = true;
+      }
+      if (event instanceof ProcessManagedBean<?>)
+      {
+         allProcessManagedBean = true;
+      }
+      if (event instanceof ProcessObserverMethod<?, ?>)
+      {
+         allProcessObserverMethod = true;
+      }
+      if (event instanceof ProcessProducer<?, ?>)
+      {
+         allProcessProducer = true;
+      }
+      if (event instanceof ProcessProducerField<?, ?>)
+      {
+         allProcessProducerField = true;
+      }
+      if (event instanceof ProcessProducerMethod<?, ?>)
+      {
+         allProcessProducerMethod = true;
+      }
+      if (event instanceof ProcessSessionBean<?>)
+      {
+         allProcessSessionBean = true;
+      }
+      if (event instanceof ProcessAnnotatedType<?>)
+      {
+         allProcessAnnnotatedType = true;
+      }
+   }
+   
+   public void observeBeforeBeanDiscovery(@Observes BeforeBeanDiscovery event)
+   {
+      beforeBeanDiscovery = true;
+   }
+   
+   public void observeAfterBeanDiscovery(@Observes AfterBeanDiscovery event)
+   {
+      afterBeanDiscovery = true;
+   }
+   
+   public void observeAfterDeploymentValidation(@Observes AfterDeploymentValidation event)
+   {
+      afterDeploymentValidation = true;
+   }
+   
+   public void observeProcessBean(@Observes ProcessBean<?> event)
+   {
+      processBean = true;
+   }
+   
+   public void observeProcessInjectionTarget(@Observes ProcessInjectionTarget<?> event)
+   {
+      processInjectionTarget = true;
+   }
+   
+   public void observeProcessProducer(@Observes ProcessProducer<?, ?> event)
+   {
+      processProducer = true;
+   }
+   
+   public void observeProcessProducerMethod(@Observes ProcessProducerMethod<?, ?> event)
+   {
+      processProducerMethod = true;
+   }
+   
+   public void observeProcessProducerField(@Observes ProcessProducerField<?, ?> event)
+   {
+      processProducerField = true;
+   }
+   
+   public void observeProcessObserverMethod(@Observes ProcessObserverMethod<?, ?> event)
+   {
+      processObserverMethod = true;
+   }
+   
+   public void observeProcessManagedBean(@Observes ProcessManagedBean<?> event)
+   {
+      processManagedBean = true;
+   }
+   
+   public void observeProcessSessionBean(@Observes ProcessSessionBean<?> event)
+   {
+      processSessionBean = true;
+   }
+   
+   public void observeProcessAnnotatedType(@Observes ProcessAnnotatedType<?> event)
+   {
+      processAnnotatedType = true;
+   }
+
+   public boolean isAllBeforeBeanDiscovery()
+   {
+      return allBeforeBeanDiscovery;
+   }
+
+   public boolean isAllAfterBeanDiscovery()
+   {
+      return allAfterBeanDiscovery;
+   }
+
+   public boolean isAllAfterDeploymentValidation()
+   {
+      return allAfterDeploymentValidation;
+   }
+
+   public boolean isAllProcessBean()
+   {
+      return allProcessBean;
+   }
+
+   public boolean isAllProcessInjectionTarget()
+   {
+      return allProcessInjectionTarget;
+   }
+
+   public boolean isAllProcessManagedBean()
+   {
+      return allProcessManagedBean;
+   }
+
+   public boolean isAllProcessObserverMethod()
+   {
+      return allProcessObserverMethod;
+   }
+
+   public boolean isAllProcessProducer()
+   {
+      return allProcessProducer;
+   }
+
+   public boolean isAllProcessProducerField()
+   {
+      return allProcessProducerField;
+   }
+
+   public boolean isAllProcessProducerMethod()
+   {
+      return allProcessProducerMethod;
+   }
+
+   public boolean isAllProcessSessionBean()
+   {
+      return allProcessSessionBean;
+   }
+
+   public boolean isAllProcessAnnnotatedType()
+   {
+      return allProcessAnnnotatedType;
+   }
+
+   public boolean isBeforeBeanDiscovery()
+   {
+      return beforeBeanDiscovery;
+   }
+
+   public boolean isAfterBeanDiscovery()
+   {
+      return afterBeanDiscovery;
+   }
+
+   public boolean isAfterDeploymentValidation()
+   {
+      return afterDeploymentValidation;
+   }
+
+   public boolean isProcessBean()
+   {
+      return processBean;
+   }
+
+   public boolean isProcessInjectionTarget()
+   {
+      return processInjectionTarget;
+   }
+
+   public boolean isProcessManagedBean()
+   {
+      return processManagedBean;
+   }
+
+   public boolean isProcessObserverMethod()
+   {
+      return processObserverMethod;
+   }
+
+   public boolean isProcessProducer()
+   {
+      return processProducer;
+   }
+
+   public boolean isProcessProducerField()
+   {
+      return processProducerField;
+   }
+
+   public boolean isProcessProducerMethod()
+   {
+      return processProducerMethod;
+   }
+
+   public boolean isProcessSessionBean()
+   {
+      return processSessionBean;
+   }
+
+   public boolean isProcessAnnotatedType()
+   {
+      return processAnnotatedType;
+   }
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionObserver.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionTest.java	2009-11-05 09:38:05 UTC (rev 4697)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/ExtensionTest.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -2,12 +2,15 @@
 
 import org.jboss.testharness.impl.packaging.Artifact;
 import org.jboss.testharness.impl.packaging.IntegrationTest;
+import org.jboss.testharness.impl.packaging.Packaging;
+import org.jboss.testharness.impl.packaging.PackagingType;
 import org.jboss.testharness.impl.packaging.jsr299.Extension;
 import org.jboss.weld.test.AbstractWeldTest;
 import org.testng.annotations.Test;
 
 @Artifact
 @IntegrationTest
+ at Packaging(PackagingType.EAR)
 @Extension("javax.enterprise.inject.spi.Extension")
 public class ExtensionTest extends AbstractWeldTest
 {
@@ -18,5 +21,73 @@
       assert SimpleExtension.getInstance() != null;
       assert getCurrentManager().getInstanceByType(SimpleExtension.class).equals(SimpleExtension.getInstance());
    }
+   
+   @Test(description="WELD-243")
+   public void testContainerEventsOnlySentToExtensionBeans()
+   {
+      ExtensionObserver extensionObserver = getCurrentManager().getInstanceByType(ExtensionObserver.class);
+      OtherObserver otherObserver = getCurrentManager().getInstanceByType(OtherObserver.class);
+      
+      assert extensionObserver.isBeforeBeanDiscovery();
+      assert extensionObserver.isAllBeforeBeanDiscovery();
+      assert !otherObserver.isBeforeBeanDiscovery();
+      assert !otherObserver.isAllBeforeBeanDiscovery();
+      
+      assert extensionObserver.isAfterBeanDiscovery();
+      assert extensionObserver.isAllAfterBeanDiscovery();
+      assert !otherObserver.isAfterBeanDiscovery();
+      assert !otherObserver.isAllAfterBeanDiscovery();
+      
+      assert extensionObserver.isProcessAnnotatedType();
+      assert extensionObserver.isAllProcessAnnnotatedType();
+      assert !otherObserver.isProcessAnnotatedType();
+      assert !otherObserver.isAllProcessAnnotatedType();
+      
+      assert extensionObserver.isProcessBean();
+      assert extensionObserver.isAllProcessBean();
+      assert !otherObserver.isProcessBean();
+      assert !otherObserver.isAllProcessBean();
+      
+      assert extensionObserver.isProcessInjectionTarget();
+      assert extensionObserver.isAllProcessInjectionTarget();
+      assert !otherObserver.isProcessInjectionTarget();
+      assert !otherObserver.isAllProcessInjectionTarget();
+      
+      assert extensionObserver.isProcessManagedBean();
+      assert extensionObserver.isAllProcessManagedBean();
+      assert !otherObserver.isProcessManagedBean();
+      assert !otherObserver.isAllProcessManagedBean();
+      
+      assert extensionObserver.isProcessObserverMethod();
+      assert extensionObserver.isAllProcessObserverMethod();
+      assert !otherObserver.isProcessObserverMethod();
+      assert !otherObserver.isAllProcessObserverMethod();
+      
+      assert extensionObserver.isProcessProducer();
+      assert extensionObserver.isAllProcessProducer();
+      assert !otherObserver.isProcessProducer();
+      assert !otherObserver.isAllProcessProducer();
+      
+      assert extensionObserver.isProcessProducerField();
+      assert extensionObserver.isAllProcessProducerField();
+      assert !otherObserver.isProcessProducerField();
+      assert !otherObserver.isAllProcessProducerField();
+      
+      assert extensionObserver.isProcessProducerMethod();
+      assert extensionObserver.isAllProcessProducerField();
+      assert !otherObserver.isProcessProducerMethod();
+      assert !otherObserver.isAllProcessProducerMethod();
+      
+      assert extensionObserver.isProcessSessionBean();
+      assert extensionObserver.isAllProcessSessionBean();
+      assert !otherObserver.isProcessSessionBean();
+      assert !otherObserver.isAllProcessSessionBean();
+      
+      assert extensionObserver.isAfterDeploymentValidation();
+      assert extensionObserver.isAllAfterDeploymentValidation();
+      assert !otherObserver.isAfterDeploymentValidation();
+      assert !otherObserver.isAllAfterDeploymentValidation(); 
+      
+   }
 
 }

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Horse.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Horse.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Horse.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,6 @@
+package org.jboss.weld.tests.extensions;
+
+public class Horse
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Horse.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/OtherObserver.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/OtherObserver.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/OtherObserver.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,280 @@
+package org.jboss.weld.tests.extensions;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.AfterDeploymentValidation;
+import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
+import javax.enterprise.inject.spi.ProcessBean;
+import javax.enterprise.inject.spi.ProcessInjectionTarget;
+import javax.enterprise.inject.spi.ProcessManagedBean;
+import javax.enterprise.inject.spi.ProcessObserverMethod;
+import javax.enterprise.inject.spi.ProcessProducer;
+import javax.enterprise.inject.spi.ProcessProducerField;
+import javax.enterprise.inject.spi.ProcessProducerMethod;
+import javax.enterprise.inject.spi.ProcessSessionBean;
+
+ at ApplicationScoped
+public class OtherObserver
+{
+   
+   private boolean allBeforeBeanDiscovery;
+   private boolean allAfterBeanDiscovery;
+   private boolean allAfterDeploymentValidation;
+   private boolean allProcessBean;
+   private boolean allProcessInjectionTarget;
+   private boolean allProcessManagedBean;
+   private boolean allProcessObserverMethod;
+   private boolean allProcessProducer;
+   private boolean allProcessProducerField;
+   private boolean allProcessProducerMethod;
+   private boolean allProcessSession;
+   private boolean allProcessAnnotatedType;
+   
+   private boolean beforeBeanDiscovery;
+   private boolean afterBeanDiscovery;
+   private boolean afterDeploymentValidation;
+   private boolean processBean;
+   private boolean processInjectionTarget;
+   private boolean processManagedBean;
+   private boolean processObserverMethod;
+   private boolean processProducer;
+   private boolean processProducerField;
+   private boolean processProducerMethod;
+   private boolean processSessionBean;
+   private boolean processAnnotatedType;
+
+   public void observeAll(@Observes Object event)
+   {
+      if (event instanceof BeforeBeanDiscovery)
+      {
+         allBeforeBeanDiscovery = true;
+      }
+      if (event instanceof AfterBeanDiscovery)
+      {
+         allAfterBeanDiscovery = true;
+      }
+      if (event instanceof AfterDeploymentValidation)
+      {
+         allAfterDeploymentValidation = true;
+      }
+      if (event instanceof ProcessBean<?> && !(event instanceof ProcessProducerField<?, ?> || event instanceof ProcessProducerMethod<?, ?> || event instanceof ProcessManagedBean<?> || event instanceof ProcessSessionBean<?>))
+      {
+         allProcessBean = true;
+      }
+      if (event instanceof ProcessInjectionTarget<?>)
+      {
+         allProcessInjectionTarget = true;
+      }
+      if (event instanceof ProcessManagedBean<?>)
+      {
+         allProcessManagedBean = true;
+      }
+      if (event instanceof ProcessObserverMethod<?, ?>)
+      {
+         allProcessObserverMethod = true;
+      }
+      if (event instanceof ProcessProducer<?, ?>)
+      {
+         allProcessProducer = true;
+      }
+      if (event instanceof ProcessProducerField<?, ?>)
+      {
+         allProcessProducerField = true;
+      }
+      if (event instanceof ProcessProducerMethod<?, ?>)
+      {
+         allProcessProducerMethod = true;
+      }
+      if (event instanceof ProcessSessionBean<?>)
+      {
+         allProcessSession = true;
+      }
+      if (event instanceof ProcessAnnotatedType<?>)
+      {
+         allProcessAnnotatedType = true;
+      }
+   }
+   
+   public void observeBeforeBeanDiscovery(@Observes BeforeBeanDiscovery event)
+   {
+      beforeBeanDiscovery = true;
+   }
+   
+   public void observeAfterBeanDiscovery(@Observes AfterBeanDiscovery event)
+   {
+      afterBeanDiscovery = true;
+   }
+   
+   public void observeAfterDeploymentValidation(@Observes AfterDeploymentValidation event)
+   {
+      afterDeploymentValidation = true;
+   }
+   
+   public void observeProcessBean(@Observes ProcessBean<?> event)
+   {
+      processBean = true;
+   }
+   
+   public void observeProcessInjectionTarget(@Observes ProcessInjectionTarget<?> event)
+   {
+      processInjectionTarget = true;
+   }
+   
+   public void observeProcessProducer(@Observes ProcessProducer<?, ?> event)
+   {
+      processProducer = true;
+   }
+   
+   public void observeProcessProducerMethod(@Observes ProcessProducerMethod<?, ?> event)
+   {
+      processProducerMethod = true;
+   }
+   
+   public void observeProcessProducerField(@Observes ProcessProducerField<?, ?> event)
+   {
+      processProducerField = true;
+   }
+   
+   public void observeProcessObserverMethod(@Observes ProcessObserverMethod<?, ?> event)
+   {
+      processObserverMethod = true;
+   }
+   
+   public void observeProcessManagedBean(@Observes ProcessManagedBean<?> event)
+   {
+      processManagedBean = true;
+   }
+   
+   public void observeProcessSessionBean(@Observes ProcessSessionBean<?> event)
+   {
+      processSessionBean = true;
+   }
+   
+   public void observeProcessAnnotatedType(@Observes ProcessAnnotatedType<?> event)
+   {
+      processAnnotatedType = true;
+   }
+
+   public boolean isAllBeforeBeanDiscovery()
+   {
+      return allBeforeBeanDiscovery;
+   }
+
+   public boolean isAllAfterBeanDiscovery()
+   {
+      return allAfterBeanDiscovery;
+   }
+
+   public boolean isAllAfterDeploymentValidation()
+   {
+      return allAfterDeploymentValidation;
+   }
+
+   public boolean isAllProcessBean()
+   {
+      return allProcessBean;
+   }
+
+   public boolean isAllProcessInjectionTarget()
+   {
+      return allProcessInjectionTarget;
+   }
+
+   public boolean isAllProcessManagedBean()
+   {
+      return allProcessManagedBean;
+   }
+
+   public boolean isAllProcessObserverMethod()
+   {
+      return allProcessObserverMethod;
+   }
+
+   public boolean isAllProcessProducer()
+   {
+      return allProcessProducer;
+   }
+
+   public boolean isAllProcessProducerField()
+   {
+      return allProcessProducerField;
+   }
+
+   public boolean isAllProcessProducerMethod()
+   {
+      return allProcessProducerMethod;
+   }
+
+   public boolean isAllProcessSessionBean()
+   {
+      return allProcessSession;
+   }
+
+   public boolean isAllProcessAnnotatedType()
+   {
+      return allProcessAnnotatedType;
+   }
+
+   public boolean isBeforeBeanDiscovery()
+   {
+      return beforeBeanDiscovery;
+   }
+
+   public boolean isAfterBeanDiscovery()
+   {
+      return afterBeanDiscovery;
+   }
+
+   public boolean isAfterDeploymentValidation()
+   {
+      return afterDeploymentValidation;
+   }
+
+   public boolean isProcessBean()
+   {
+      return processBean;
+   }
+
+   public boolean isProcessInjectionTarget()
+   {
+      return processInjectionTarget;
+   }
+
+   public boolean isProcessManagedBean()
+   {
+      return processManagedBean;
+   }
+
+   public boolean isProcessObserverMethod()
+   {
+      return processObserverMethod;
+   }
+
+   public boolean isProcessProducer()
+   {
+      return processProducer;
+   }
+
+   public boolean isProcessProducerField()
+   {
+      return processProducerField;
+   }
+
+   public boolean isProcessProducerMethod()
+   {
+      return processProducerMethod;
+   }
+
+   public boolean isProcessSessionBean()
+   {
+      return processSessionBean;
+   }
+
+   public boolean isProcessAnnotatedType()
+   {
+      return processAnnotatedType;
+   }
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/OtherObserver.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Rat.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Rat.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Rat.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,6 @@
+package org.jboss.weld.tests.extensions;
+
+public class Rat
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Rat.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Special.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Special.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Special.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,20 @@
+package org.jboss.weld.tests.extensions;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+ at Qualifier
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target({FIELD, METHOD, TYPE, PARAMETER})
+public @interface Special
+{
+
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Special.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Stable.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Stable.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Stable.java	2009-11-05 15:06:45 UTC (rev 4698)
@@ -0,0 +1,15 @@
+package org.jboss.weld.tests.extensions;
+
+import javax.enterprise.inject.Produces;
+
+public class Stable
+{
+   
+   @Produces @Special Rat rat = new Rat();
+
+   @Produces @Special Horse produce()
+   {
+      return new Horse();
+   }
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/extensions/Stable.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: core/trunk/tests/src/test/resources/org/jboss/weld/tests/extensions/javax.enterprise.inject.spi.Extension
===================================================================
--- core/trunk/tests/src/test/resources/org/jboss/weld/tests/extensions/javax.enterprise.inject.spi.Extension	2009-11-05 09:38:05 UTC (rev 4697)
+++ core/trunk/tests/src/test/resources/org/jboss/weld/tests/extensions/javax.enterprise.inject.spi.Extension	2009-11-05 15:06:45 UTC (rev 4698)
@@ -1 +1,2 @@
-org.jboss.weld.tests.extensions.SimpleExtension
\ No newline at end of file
+org.jboss.weld.tests.extensions.SimpleExtension
+org.jboss.weld.tests.extensions.ExtensionObserver
\ No newline at end of file



More information about the weld-commits mailing list