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++;
+    }
 }


Reply via email to