You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/05/06 22:43:21 UTC

svn commit: r772418 - in /incubator/openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/config/ main/java/org/apache/webbeans/container/ main/java/org/apache/webbeans/event/ test/java/org/apache/webbeans/test/mock/ test/java/org/apache/...

Author: gerdogdu
Date: Wed May  6 20:43:21 2009
New Revision: 772418

URL: http://svn.apache.org/viewvc?rev=772418&view=rev
Log:
Updating the ChildManagers.

Modified:
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ChildActivityManager.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ManagerImpl.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/TypedComponentTest.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/XMLFieldTest.java

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java Wed May  6 20:43:21 2009
@@ -43,8 +43,6 @@
 
     public static final String SINGLETON_STEREOTYPE_MANAGER = StereoTypeManager.class.getName();
 
-    public static final String SINGLETON_NOTIFICATION_MANAGER = NotificationManager.class.getName();
-
     public static final String SINGLETON_INTERCEPTORS_MANAGER = InterceptorsManager.class.getName();
 
     public static final String SINGLETON_CONVERSATION_MANAGER = ConversationManager.class.getName();
@@ -53,8 +51,6 @@
 
     public static final String SINGLETON_XML_SPECIALIZES_MANAGER = XMLSpecializesManager.class.getName();
 
-    public static final String SINGLETON_INJECTION_RESOLVER = InjectionResolver.class.getName();
-    
     public static final String SINGLETON_CREATIONAL_CONTEXT_FACTORY = CreationalContextFactory.class.getName();
     
     public static final String SINGLETON_SESSION_CONTEXT_MANAGER = SessionContextManager.class.getName();

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ChildActivityManager.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ChildActivityManager.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ChildActivityManager.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ChildActivityManager.java Wed May  6 20:43:21 2009
@@ -13,17 +13,18 @@
  */
 package org.apache.webbeans.container;
 
-import java.io.InputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
-import javax.context.Context;
-import javax.context.ContextNotActiveException;
 import javax.context.CreationalContext;
 import javax.event.Observer;
+import javax.inject.AmbiguousDependencyException;
+import javax.inject.DeploymentException;
 import javax.inject.TypeLiteral;
+import javax.inject.UnsatisfiedDependencyException;
 import javax.inject.manager.Bean;
 import javax.inject.manager.Decorator;
 import javax.inject.manager.InjectionPoint;
@@ -38,41 +39,82 @@
  * and delegates all other requests to it's parent Manager. 
  *
  */
-public class ChildActivityManager implements Manager
-{
-
-    /**
-     * The parent Manager this child is depending from.
-     */
-    private Manager parent;
-    
-    /**
-     * All beans added to this instance will be tracked by this very Manager
-     */
-    private Manager self;
+public class ChildActivityManager extends ManagerImpl
+{    
     
     /**
      * the ct will be called by {@code Manager#createActivity()}
      * @param parent is the Manager calling this ct
      */
-    public ChildActivityManager(Manager parent)
+    public ChildActivityManager(ManagerImpl parent)
     {
-        this.parent = parent;
-        this.self = new ManagerImpl();
+        super();
+        
+        setParent(parent);
     }
     
     /** {@inheritDoc} */
     public Manager addBean(Bean<?> bean)
     {
-        //X TODO possibly add checks
-        return self.addBean(bean);
+        if(checkBean(bean, getParent()))
+        {
+            throw new DeploymentException(bean.toString() + " already registered with parent manager!");
+        }
+        
+        return this;
     }
-
-    /** {@inheritDoc} */
-    public Manager addContext(Context context)
+    
+    /**
+     * Returns true if bean exist in parent false owise.
+     * 
+     * @param bean check bean
+     * @param parent parent or the child or null if root
+     * @return true if bean exist in parent false owise.
+     */
+    private boolean checkBean(Bean<?> bean, ManagerImpl parent)
     {
-        //X TODO possibly add checks
-        return self.addContext(context);
+        if(parent == null)
+        {
+            return false;
+        }
+        else
+        {
+            Set<Annotation> bindings = bean.getBindings();
+            Set<Type> apiTypes = bean.getTypes();
+            
+            Set<Bean<?>> beans = parent.getBeans();
+            boolean found = false;
+            for(Bean<?> b : beans)
+            {
+                Set<Annotation> parentBindings = b.getBindings();
+                Set<Type> parentApiTypes = b.getTypes();
+                
+                if(parentBindings.containsAll(bindings))
+                {
+                    for(Type t : apiTypes)
+                    {
+                        
+                        if(parentApiTypes.contains(t) && (!t.equals(Object.class)))
+                        {
+                            found = true;
+                            break;
+                        }
+                    }                
+                }
+                
+                if(found)
+                {
+                    break;
+                }
+            }
+            
+            if(found)
+            {
+                return true;
+            }        
+            
+            return checkBean(bean, parent.getParent());
+        }        
     }
 
     /** {@inheritDoc} */
@@ -87,73 +129,59 @@
         throw new UnsupportedOperationException("Interceptors may not be registered with a child activity.");
     }
 
-    /** {@inheritDoc} */
-    public <T> Manager addObserver(Observer<T> observer, Class<T> eventType, Annotation... bindings)
-    {
-        //X TODO possibly add checks
-        return self.addObserver(observer, eventType, bindings);
-    }
-
-    /** {@inheritDoc} */
-    public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType, Annotation... bindings)
-    {
-        //X TODO possibly add checks
-        return self.addObserver(observer, eventType, bindings);
-    }
-
-    /** {@inheritDoc} */
-    public Manager createActivity()
-    {
-        return new ChildActivityManager(this);
-    }
 
     /** {@inheritDoc} */
     public void fireEvent(Object event, Annotation... bindings)
     {
-        self.fireEvent(event, bindings);
-        parent.fireEvent(event, bindings);
+        super.fireEvent(event, bindings);
+        
+        getParent().fireEvent(event, bindings);
     }
 
-    /** {@inheritDoc} */
-    public Context getContext(Class<? extends Annotation> scopeType)
-    {
-        Context ctx = null;
-        //X TODO not 100% sure if this is ok. 'double-definition' case isn't defined by the spec yet!
-        try 
-        {
-            ctx = self.getContext(scopeType);
-        }
-        catch (ContextNotActiveException cna)
-        {
-            //dumdidum nothing found, so let's try it in the parent context
-        }
-        if (ctx == null)
-        {
-            ctx = parent.getContext(scopeType);
-        }
-        return ctx;
-    }
 
     /** {@inheritDoc} */
     public <T> T getInstance(Bean<T> bean)
     {
-        //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        T obj = self.getInstance(bean);
+        T obj = null;
+        
+        try
+        {
+            
+            obj = super.getInstance(bean);
+            
+        }catch(UnsatisfiedDependencyException e1)
+        {            
+        }catch (AmbiguousDependencyException e2) {
+        }
+        
+        
         if (obj == null) 
         {
-            obj = parent.getInstance(bean);
+            obj = getParent().getInstance(bean);
         }
+        
         return obj;
     }
 
     /** {@inheritDoc} */
     public Object getInstanceByName(String name)
     {
-        //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        Object obj = self.getInstanceByName(name);
+        Object obj = null;
+        
+        try
+        {
+            
+            obj = super.getInstanceByName(name);
+            
+        }catch(UnsatisfiedDependencyException e1)
+        {            
+        }catch (AmbiguousDependencyException e2) {
+        }
+        
+        
         if (obj == null) 
         {
-            obj = parent.getInstanceByName(name);
+            obj = getParent().getInstanceByName(name);
         }
         return obj;
     }
@@ -162,10 +190,22 @@
     public <T> T getInstanceByType(Class<T> type, Annotation... bindingTypes)
     {
         //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        T obj = self.getInstanceByType(type, bindingTypes);
+        T obj = null;
+        
+        try
+        {
+            
+            obj =  super.getInstanceByType(type, bindingTypes);
+            
+        }catch(UnsatisfiedDependencyException e1)
+        {            
+        }catch (AmbiguousDependencyException e2) {
+        }
+        
+        
         if (obj == null) 
         {
-            obj = parent.getInstanceByType(type, bindingTypes);
+            obj = getParent().getInstanceByType(type, bindingTypes);
         }
         return obj;
     }
@@ -174,10 +214,22 @@
     public <T> T getInstanceByType(TypeLiteral<T> type, Annotation... bindingTypes)
     {
         //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        T obj = self.getInstanceByType(type, bindingTypes);
+        T obj = null;
+       
+        try
+        {
+            
+            obj =  super.getInstanceByType(type, bindingTypes);
+            
+        }catch(UnsatisfiedDependencyException e1)
+        {            
+        }catch (AmbiguousDependencyException e2) {
+        }
+        
+        
         if (obj == null) 
         {
-            obj = parent.getInstanceByType(type, bindingTypes);
+            obj = getParent().getInstanceByType(type, bindingTypes);
         }
         return obj;
     }
@@ -185,58 +237,60 @@
     /** {@inheritDoc} */
     public <T> T getInstanceToInject(InjectionPoint injectionPoint, CreationalContext<?> context)
     {
-        //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        T obj = self.<T>getInstanceToInject(injectionPoint, context); //X ugly <T> due to javac bug 6302954
+        T obj = null;
+        
+        try
+        {
+            
+            obj =  super.getInstanceToInject(injectionPoint, context); //X ugly <T> due to javac bug 6302954
+            
+        }catch(UnsatisfiedDependencyException e1)
+        {            
+        }catch (AmbiguousDependencyException e2) {
+        }
+        
+        
         if (obj == null) 
         {
-            obj = parent.<T>getInstanceToInject(injectionPoint, context); //X ugly <T> due to javac bug 6302954
+            obj = getParent().getInstanceToInject(injectionPoint, context); //X ugly <T> due to javac bug 6302954
         }
         return obj;
     }
 
     /** {@inheritDoc} */
-    public <T> T getInstanceToInject(InjectionPoint injectionPoint)
+    public Object getInstanceToInject(InjectionPoint injectionPoint)
     {
-        //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        T obj = self.<T>getInstanceToInject(injectionPoint); //X ugly <T> due to javac bug 6302954
+        Object obj = null;
+        
+        try
+        {
+            
+            obj = super.getInstanceToInject(injectionPoint); //X ugly <T> due to javac bug 6302954
+            
+        }catch(UnsatisfiedDependencyException e1)
+        {            
+        }catch (AmbiguousDependencyException e2) {
+        }
+        
+        
         if (obj == null) 
         {
-            obj = parent.<T>getInstanceToInject(injectionPoint); //X ugly <T> due to javac bug 6302954
+            obj = getParent().getInstanceToInject(injectionPoint); //X ugly <T> due to javac bug 6302954
         }
         return obj;
     }
 
-    /** {@inheritDoc} */
-    public Manager parse(InputStream xmlStream)
-    {
-        self.parse(xmlStream);
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    public <T> Manager removeObserver(Observer<T> observer, Class<T> eventType, Annotation... bindings)
-    {
-        //X TODO check if the user tries to remove an Observer from the parent -> Exception
-        self.removeObserver(observer, eventType, bindings);
-        return this;
-    }
 
-    /** {@inheritDoc} */
-    public <T> Manager removeObserver(Observer<T> observer, TypeLiteral<T> eventType, Annotation... bindings)
-    {
-        //X TODO check if the user tries to remove an Observer from the parent -> Exception
-        self.removeObserver(observer, eventType, bindings);
-        return this;
-    }
 
     /** {@inheritDoc} */
     public Set<Bean<?>> resolveByName(String name)
     {
         //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        Set<Bean<?>> set = self.resolveByName(name);
+        Set<Bean<?>> set = super.resolveByName(name);
+        
         if (set == null || set.isEmpty()) 
         {
-            set = parent.resolveByName(name);
+            set = getParent().resolveByName(name);
         }
         return set;
     }
@@ -245,10 +299,11 @@
     public <T> Set<Bean<T>> resolveByType(Class<T> type, Annotation... bindings)
     {
         //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        Set<Bean<T>> set = self.resolveByType(type, bindings);
+        Set<Bean<T>> set = super.resolveByType(type, bindings);
+       
         if (set == null || set.isEmpty()) 
         {
-            set = parent.resolveByType(type, bindings);
+            set = getParent().resolveByType(type, bindings);
         }
         return set;
     }
@@ -257,43 +312,40 @@
     public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType, Annotation... bindingTypes)
     {
         //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        Set<Bean<T>> set = self.resolveByType(apiType, bindingTypes);
+        Set<Bean<T>> set = super.resolveByType(apiType, bindingTypes);
+       
         if (set == null || set.isEmpty()) 
         {
-            set = parent.resolveByType(apiType, bindingTypes);
+            set = getParent().resolveByType(apiType, bindingTypes);
         }
         return set;
     }
 
     /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
     public List<Decorator> resolveDecorators(Set<Type> types, Annotation... bindingTypes)
     {
-        throw new UnsupportedOperationException("Decorators may not be registered with a child activity.");    
+        return Collections.EMPTY_LIST;    
     }
 
     /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
     public List<Interceptor> resolveInterceptors(InterceptionType type, Annotation... interceptorBindings)
     {
-        throw new UnsupportedOperationException("Interceptors may not be registered with a child activity.");    
+        return Collections.EMPTY_LIST;    
     }
 
     /** {@inheritDoc} */
     public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings)
     {
         //X TODO not 100% sure if this is ok. There is some 'double-definition' exception case defined in the spec ...
-        Set<Observer<T>> set = self.resolveObservers(event, bindings);
+        Set<Observer<T>> set = super.resolveObservers(event, bindings);
+       
         if (set == null || set.isEmpty()) 
         {
-            set = parent.resolveObservers(event, bindings);
+            set = getParent().resolveObservers(event, bindings);
         }
         return set;
     }
 
-    /** {@inheritDoc} */
-    public Manager setCurrent(Class<? extends Annotation> scopeType)
-    {
-        //X TODO what about parent? we must not set the current scope type for parents, but what are the implications?
-        self.setCurrent(scopeType);
-        return this;
-    }
-}
+ }
\ No newline at end of file

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java Wed May  6 20:43:21 2009
@@ -31,7 +31,7 @@
 import org.apache.webbeans.component.ObservableComponentImpl;
 import org.apache.webbeans.component.ProducerComponentImpl;
 import org.apache.webbeans.component.ProducerFieldComponent;
-import org.apache.webbeans.config.WebBeansFinder;
+import org.apache.webbeans.container.activity.ActivityManager;
 import org.apache.webbeans.deployment.DeploymentTypeManager;
 import org.apache.webbeans.exception.WebBeansConfigurationException;
 import org.apache.webbeans.util.AnnotationUtil;
@@ -41,14 +41,18 @@
 @SuppressWarnings("unchecked")
 public class InjectionResolver
 {
-    public InjectionResolver()
+    private ManagerImpl manager;
+    
+    public InjectionResolver(ManagerImpl manager)
     {
+        this.manager = manager;
 
     }
 
     public static InjectionResolver getInstance()
     {
-        InjectionResolver instance = (InjectionResolver) WebBeansFinder.getSingletonInstance(WebBeansFinder.SINGLETON_INJECTION_RESOLVER);
+        InjectionResolver instance = ActivityManager.getInstance().getCurrentActivity().getInjectionResolver();
+        
         return instance;
     }
 
@@ -139,11 +143,11 @@
     {
         Asserts.assertNotNull(name, "name parameter can not be null");
 
-        ManagerImpl manager = ManagerImpl.getManager();
-
         Set<Bean<?>> resolvedComponents = new HashSet<Bean<?>>();
+        
         Bean<?> resolvedComponent = null;
-        Set<Bean<?>> deployedComponents = manager.getBeans();
+        
+        Set<Bean<?>> deployedComponents = this.manager.getBeans();
 
         Iterator<Bean<?>> it = deployedComponents.iterator();
         while (it.hasNext())
@@ -189,8 +193,6 @@
             apiType = ClassUtil.getPrimitiveWrapper(apiType);
         }
 
-        ManagerImpl manager = ManagerImpl.getManager();
-
         boolean currentBinding = false;
         boolean returnAll = false;
 
@@ -202,7 +204,7 @@
         }
 
         Set<Bean<T>> results = new HashSet<Bean<T>>();
-        Set<Bean<?>> deployedComponents = manager.getBeans();
+        Set<Bean<?>> deployedComponents = this.manager.getBeans();
 
         if (apiType.equals(Object.class) && currentBinding)
         {
@@ -327,10 +329,12 @@
 
         results = findByBindingType(results, binding);
 
+        
         if (results != null && !results.isEmpty())
         {
             results = findByPrecedence(results);
         }
+        
 
         return results;
     }

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ManagerImpl.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ManagerImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ManagerImpl.java Wed May  6 20:43:21 2009
@@ -75,7 +75,7 @@
 public class ManagerImpl implements Manager, Referenceable
 {
     /**Holds the context with key scope*/
-    private Map<Class<? extends Annotation>, List<Context>> contextMap = new ConcurrentHashMap<Class<? extends Annotation>, List<Context>>();
+    private static Map<Class<? extends Annotation>, List<Context>> contextMap = new ConcurrentHashMap<Class<? extends Annotation>, List<Context>>();
 
     /**Activity webbeans components*/
     private Set<Bean<?>> components = new CopyOnWriteArraySet<Bean<?>>();
@@ -99,14 +99,50 @@
     private WebBeansXMLConfigurator xmlConfigurator = null;
     
     /**
+     * The parent Manager this child is depending from.
+     */
+    private ManagerImpl parent;
+    
+    /**
      * Creates a new {@link Manager} instance.
      * Called by the system. Do not use outside of the
      * system.
      */
     public ManagerImpl()
     {
-        injectionResolver = InjectionResolver.getInstance();
-        notificationManager = NotificationManager.getInstance();
+        injectionResolver = new InjectionResolver(this);
+        notificationManager = new NotificationManager();
+    }    
+    
+    public ManagerImpl getParent()
+    {
+        return this.parent;
+    }
+    
+    public synchronized void setParent(ManagerImpl parent)
+    {
+       this.parent = parent;
+    }
+    
+    
+    /**
+     * Return manager notification manager.
+     * 
+     * @return notification manager
+     */
+    public NotificationManager getNotificationManager()
+    {
+        return this.notificationManager;
+    }
+    
+    /**
+     * Gets injection resolver.
+     * 
+     * @return injection resolver
+     */
+    public InjectionResolver getInjectionResolver()
+    {
+        return this.injectionResolver;
     }
 
     /**
@@ -165,7 +201,7 @@
             }
         }
         
-        List<Context> others = this.contextMap.get(scopeType);
+        List<Context> others = ManagerImpl.contextMap.get(scopeType);
         if(others != null)
         {
             for(Context otherContext : others)
@@ -491,14 +527,14 @@
         Asserts.assertNotNull(scopeType, "scopeType parameter can not be null");
         Asserts.assertNotNull(context, "context parameter can not be null");
 
-        List<Context> contextList = this.contextMap.get(scopeType);
+        List<Context> contextList = ManagerImpl.contextMap.get(scopeType);
         
         if(contextList == null)
         {
             contextList = new CopyOnWriteArrayList<Context>();
             contextList.add(context);
             
-            this.contextMap.put(scopeType, contextList);
+            ManagerImpl.contextMap.put(scopeType, contextList);
         }
         else
         {

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java Wed May  6 20:43:21 2009
@@ -33,7 +33,8 @@
 import javax.transaction.Transaction;
 
 import org.apache.webbeans.component.ObservesMethodsOwner;
-import org.apache.webbeans.config.WebBeansFinder;
+import org.apache.webbeans.container.ManagerImpl;
+import org.apache.webbeans.container.activity.ActivityManager;
 import org.apache.webbeans.exception.WebBeansException;
 import org.apache.webbeans.logger.WebBeansLogger;
 import org.apache.webbeans.spi.ServiceLoader;
@@ -59,8 +60,9 @@
 
     public static NotificationManager getInstance()
     {
-        NotificationManager instance = (NotificationManager) WebBeansFinder.getSingletonInstance(WebBeansFinder.SINGLETON_NOTIFICATION_MANAGER);
-        return instance;
+        ManagerImpl manager =  ActivityManager.getInstance().getCurrentActivity();
+        
+        return manager.getNotificationManager();
     }
 
     public <T> void addObserver(Observer<T> observer, Class<T> eventType, Annotation... annotations)

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java Wed May  6 20:43:21 2009
@@ -32,7 +32,6 @@
 import javax.inject.manager.Manager;
 
 import org.apache.webbeans.component.AbstractComponent;
-import org.apache.webbeans.config.WebBeansFinder;
 import org.apache.webbeans.container.ManagerImpl;
 import org.apache.webbeans.container.activity.ActivityManager;
 
@@ -53,8 +52,6 @@
     {
         componentList.clear();        
         
-        WebBeansFinder.removeInstance(WebBeansFinder.SINGLETON_NOTIFICATION_MANAGER);
-        
         this.manager = new ManagerImpl();        
      
         ActivityManager.getInstance().setRootActivity(this.manager);        

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/TypedComponentTest.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/TypedComponentTest.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/TypedComponentTest.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/TypedComponentTest.java Wed May  6 20:43:21 2009
@@ -22,7 +22,6 @@
 import junit.framework.Assert;
 
 import org.apache.webbeans.component.AbstractComponent;
-import org.apache.webbeans.container.ManagerImpl;
 import org.apache.webbeans.test.component.service.ITyped;
 import org.apache.webbeans.test.component.service.TypedComponent;
 import org.apache.webbeans.test.servlet.TestContext;
@@ -43,7 +42,6 @@
     public void init()
     {
         super.init();
-        this.container = ManagerImpl.getManager();
     }
 
     @Test
@@ -54,7 +52,7 @@
         List<AbstractComponent<?>> list = getComponents();
 
         @SuppressWarnings("unused")
-        AbstractComponent<?> itype = (AbstractComponent<?>) container.resolveByType(TypedComponentTest.class.getDeclaredField("s").getType(), new Current()
+        AbstractComponent<?> itype = (AbstractComponent<?>) getManager().resolveByType(TypedComponentTest.class.getDeclaredField("s").getType(), new Current()
         {
 
             public Class<? extends Annotation> annotationType()

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/XMLFieldTest.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/XMLFieldTest.java?rev=772418&r1=772417&r2=772418&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/XMLFieldTest.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/XMLFieldTest.java Wed May  6 20:43:21 2009
@@ -16,11 +16,9 @@
 import java.io.InputStream;
 
 import javax.inject.manager.Manager;
-import javax.servlet.ServletContext;
 
 import junit.framework.Assert;
 
-import org.apache.webbeans.container.ManagerImpl;
 import org.apache.webbeans.test.servlet.TestContext;
 import org.apache.webbeans.test.xml.ComponentForField;
 import org.junit.Before;
@@ -39,7 +37,6 @@
     public void init()
     {
         super.init();
-        this.container = ManagerImpl.getManager();
     }
 
     @Test
@@ -53,7 +50,7 @@
 
         this.xmlConfigurator.configure(stream, "fieldTest.xml");
 
-        ComponentForField cff = (ComponentForField) container.getInstanceByName("componentForField");
+        ComponentForField cff = (ComponentForField) getManager().getInstanceByName("componentForField");
 
         Assert.assertNotNull(cff);
         Assert.assertEquals(35, cff.getIntField());