[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