Author: struberg
Date: Fri Feb 25 12:27:00 2011
New Revision: 1074497

URL: http://svn.apache.org/viewvc?rev=1074497&view=rev
Log:
OWB-532 create a new BeanManager#isInUse() flag 

this is set once a custom bean got added

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/InjectedInstanceComponentTest.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/resolution/ManagerResolutionTest.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/typedliteral/TypeLiteralTest.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=1074497&r1=1074496&r2=1074497&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
 Fri Feb 25 12:27:00 2011
@@ -146,7 +146,7 @@ public class BeansDeployer
                 }
 
                 // Register Manager built-in component
-                
webBeansContext.getBeanManagerImpl().addBean(webBeansContext.getWebBeansUtil().getManagerBean());
+                
webBeansContext.getBeanManagerImpl().addInternalBean(webBeansContext.getWebBeansUtil().getManagerBean());
 
                 //Fire Event
                 fireBeforeBeanDiscoveryEvent();
@@ -200,16 +200,16 @@ public class BeansDeployer
         WebBeansUtil webBeansUtil = webBeansContext.getWebBeansUtil();
 
         // Register Conversation built-in component
-        beanManager.addBean(webBeansUtil.getConversationBean());
+        beanManager.addInternalBean(webBeansUtil.getConversationBean());
         
         // Register InjectionPoint bean
-        beanManager.addBean(webBeansUtil.getInjectionPointBean());
+        beanManager.addInternalBean(webBeansUtil.getInjectionPointBean());
         
         //Register Instance Bean
-        beanManager.addBean(webBeansUtil.getInstanceBean());
+        beanManager.addInternalBean(webBeansUtil.getInstanceBean());
         
         //Register Event Bean
-        beanManager.addBean(webBeansUtil.getEventBean());
+        beanManager.addInternalBean(webBeansUtil.getEventBean());
         
         //REgister Provider Beans
         OpenWebBeansJavaEEPlugin beanEeProvider = 
webBeansContext.getPluginLoader().getJavaEEPlugin();
@@ -241,7 +241,7 @@ public class BeansDeployer
         
         if(bean != null)
         {
-            manager.addBean(bean);
+            manager.addInternalBean(bean);
         }
     }
     

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=1074497&r1=1074496&r2=1074497&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
 Fri Feb 25 12:27:00 2011
@@ -177,6 +177,13 @@ public class BeanManagerImpl implements 
     private final WebBeansContext webBeansContext;
 
     /**
+     * This flag will get set to <code>true</code> if a custom bean
+     * (all non-internal beans like {@link 
org.apache.webbeans.component.BeanManagerBean;} etc)
+     * gets set.
+     */
+    private boolean inUse = false;
+
+    /**
      * Creates a new {@link BeanManager} instance.
      * Called by the system. Do not use outside of the
      * system.
@@ -306,14 +313,26 @@ public class BeanManagerImpl implements 
     }
 
     /**
-     * Add new bean.
+     * Add new bean to the BeanManager.
+     * This will also set OWBs {@link #inUse} status.
      * 
      * @param newBean new bean instance
      * @return the this manager
      */
-    
     public BeanManager addBean(Bean<?> newBean)
     {
+        inUse = true;
+        return addInternalBean(newBean);
+    }
+
+    /**
+     * This method is reserved for adding 'internal beans'
+     * like e.g. a BeanManagerBean,
+     * @param newBean
+     * @return
+     */
+    public BeanManager addInternalBean(Bean<?> newBean)
+    {
         if(newBean instanceof AbstractOwbBean)
         {
             addPassivationInfo((OwbBean)newBean);
@@ -325,11 +344,11 @@ public class BeanManagerImpl implements 
             addPassivationInfo(bean);
             this.deploymentBeans.add(bean);
         }
-        
 
         return this;
     }
 
+
     /**
      * Check if the bean is has a passivation id and add it to the id store.
      *
@@ -1155,4 +1174,9 @@ public class BeanManagerImpl implements 
         this.webBeansDecorators.clear();
         this.webBeansInterceptors.clear();
     }
+
+    public boolean isInUse()
+    {
+        return inUse;
+    }
 }

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java?rev=1074497&r1=1074496&r2=1074497&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/mock/MockManager.java
 Fri Feb 25 12:27:00 2011
@@ -91,7 +91,13 @@ public class MockManager implements Bean
         manager.addBean(bean);
         return this;
     }
-    
+
+    public BeanManager addInternalBean(Bean<?> bean)
+    {
+        manager.addInternalBean(bean);
+        return this;
+    }
+
     public BeanManager addContext(Context context)
     {
         return manager.addContext(context);

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/InjectedInstanceComponentTest.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/InjectedInstanceComponentTest.java?rev=1074497&r1=1074496&r2=1074497&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/InjectedInstanceComponentTest.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/inject/InjectedInstanceComponentTest.java
 Fri Feb 25 12:27:00 2011
@@ -48,7 +48,7 @@ public class InjectedInstanceComponentTe
     public void testInstanceInjectedComponent()
     {
         WebBeansContext webBeansContext = WebBeansContext.getInstance();
-        
getManager().addBean(webBeansContext.getWebBeansUtil().getInstanceBean());
+        
getManager().addInternalBean(webBeansContext.getWebBeansUtil().getInstanceBean());
 
         webBeansContext.getContextFactory().initRequestContext(null);
         Bean<PaymentProcessorComponent> bean =  
defineManagedBean(PaymentProcessorComponent.class);

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/resolution/ManagerResolutionTest.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/resolution/ManagerResolutionTest.java?rev=1074497&r1=1074496&r2=1074497&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/resolution/ManagerResolutionTest.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/resolution/ManagerResolutionTest.java
 Fri Feb 25 12:27:00 2011
@@ -40,7 +40,7 @@ public class ManagerResolutionTest exten
     public void beforeTest()
     {
         super.init();
-        
getManager().addBean(WebBeansContext.getInstance().getWebBeansUtil().getManagerBean());
+        
getManager().addInternalBean(WebBeansContext.getInstance().getWebBeansUtil().getManagerBean());
     }
 
     @Test

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/typedliteral/TypeLiteralTest.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/typedliteral/TypeLiteralTest.java?rev=1074497&r1=1074496&r2=1074497&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/typedliteral/TypeLiteralTest.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/typedliteral/TypeLiteralTest.java
 Fri Feb 25 12:27:00 2011
@@ -72,7 +72,7 @@ public class TypeLiteralTest extends Tes
         clear();
 
         WebBeansContext webBeansContext = WebBeansContext.getInstance();
-        
webBeansContext.getBeanManagerImpl().addBean(webBeansContext.getWebBeansUtil().getInstanceBean());
+        
webBeansContext.getBeanManagerImpl().addInternalBean(webBeansContext.getWebBeansUtil().getInstanceBean());
         
         defineManagedBean(StringOrder.class);
         defineManagedBean(IntegerOrder.class);


Reply via email to