Author: arne
Date: Mon Jun 10 22:27:29 2013
New Revision: 1491627
URL: http://svn.apache.org/r1491627
Log:
OWB-870: BeanManagerImpl#createInjectionTarget now does not define a managed
bean anymore
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionTargetFactoryImpl.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/InjectionTargetTest.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/PersonModel.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=1491627&r1=1491626&r2=1491627&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
Mon Jun 10 22:27:29 2013
@@ -34,8 +34,6 @@ import java.util.concurrent.ConcurrentHa
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArraySet;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
import javax.el.ELResolver;
import javax.el.ExpressionFactory;
import javax.enterprise.context.ContextNotActiveException;
@@ -46,7 +44,6 @@ import javax.enterprise.context.spi.Cont
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.Default;
import javax.enterprise.inject.Stereotype;
-import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
@@ -67,7 +64,6 @@ import javax.naming.StringRefAddr;
import org.apache.webbeans.component.AbstractOwbBean;
import org.apache.webbeans.component.EnterpriseBeanMarker;
-import org.apache.webbeans.component.InjectionTargetBean;
import org.apache.webbeans.component.JmsBeanMarker;
import org.apache.webbeans.component.NewBean;
import org.apache.webbeans.component.OwbBean;
@@ -84,7 +80,6 @@ import org.apache.webbeans.exception.def
import org.apache.webbeans.exception.inject.DefinitionException;
import org.apache.webbeans.plugins.OpenWebBeansJmsPlugin;
import org.apache.webbeans.portable.AnnotatedElementFactory;
-import org.apache.webbeans.portable.InjectionTargetImpl;
import org.apache.webbeans.portable.events.discovery.ErrorStack;
import org.apache.webbeans.spi.adaptor.ELAdaptor;
import org.apache.webbeans.spi.plugins.OpenWebBeansEjbPlugin;
@@ -954,18 +949,8 @@ public class BeanManagerImpl extends Abs
@Override
public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> type)
{
- InjectionTargetBean<T> bean =
webBeansContext.getWebBeansUtil().defineManagedBean(type);
-
- if (bean == null)
- {
- throw new DefinitionException("Could not create
InjectionTargetBean for type " + type.getJavaClass());
- }
- List<AnnotatedMethod<?>> postConstructMethods
- =
webBeansContext.getInterceptorUtil().getLifecycleMethods(bean.getAnnotatedType(),
PostConstruct.class, true);
- List<AnnotatedMethod<?>> preDestroyMethods
- =
webBeansContext.getInterceptorUtil().getLifecycleMethods(bean.getAnnotatedType(),
PreDestroy.class, false);
-
- return new InjectionTargetImpl<T>(bean.getAnnotatedType(),
bean.getInjectionPoints(), webBeansContext, postConstructMethods,
preDestroyMethods);
+ InjectionTargetFactoryImpl<T> factory = new
InjectionTargetFactoryImpl<T>(type, webBeansContext);
+ return factory.createInjectionTarget();
}
@Override
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionTargetFactoryImpl.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionTargetFactoryImpl.java?rev=1491627&r1=1491626&r2=1491627&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionTargetFactoryImpl.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionTargetFactoryImpl.java
Mon Jun 10 22:27:29 2013
@@ -49,6 +49,11 @@ public class InjectionTargetFactoryImpl<
this.webBeansContext = webBeansContext;
}
+ public InjectionTarget<T> createInjectionTarget()
+ {
+ return createInjectionTarget(null);
+ }
+
@Override
public InjectionTarget<T> createInjectionTarget(Bean<T> bean)
{
Modified:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/InjectionTargetTest.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/InjectionTargetTest.java?rev=1491627&r1=1491626&r2=1491627&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/InjectionTargetTest.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/InjectionTargetTest.java
Mon Jun 10 22:27:29 2013
@@ -53,12 +53,16 @@ public class InjectionTargetTest extends
public void testInjectionTarget()
{
Collection<Class<?>> classes = new ArrayList<Class<?>>();
+ classes.add(PersonModel.class);
startContainer(classes);
InjectionTarget<PersonModel> model =
getBeanManager().createInjectionTarget(getBeanManager().createAnnotatedType(PersonModel.class));
PersonModel person =
model.produce(getBeanManager().createCreationalContext(new
InjectionTargetTest.MyContextual<PersonModel>()));
Assert.assertNotNull(person);
-
+
+ // check that createInjectionTarget did not deploy a second observer
method
+ getBeanManager().fireEvent("test");
+ Assert.assertEquals(1, PersonModel.getEventCount());
shutDownContainer();
}
Modified:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/PersonModel.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/PersonModel.java?rev=1491627&r1=1491626&r2=1491627&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/PersonModel.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/portable/injectiontarget/PersonModel.java
Mon Jun 10 22:27:29 2013
@@ -18,7 +18,19 @@
*/
package org.apache.webbeans.newtests.portable.injectiontarget;
+import javax.enterprise.event.Observes;
+
public class PersonModel
{
+ private static int eventCount;
+
+ public static int getEventCount()
+ {
+ return eventCount;
+ }
+ public void observe(@Observes String event)
+ {
+ eventCount++;
+ }
}