Author: struberg
Date: Mon Feb 28 16:43:54 2011
New Revision: 1075417

URL: http://svn.apache.org/viewvc?rev=1075417&view=rev
Log:
OWB-535 release ScannerService resources once we don't need them anymore

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/config/WebBeansScannerTest.java
    
openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
    
openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.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=1075417&r1=1075416&r2=1075417&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
 Mon Feb 28 16:43:54 2011
@@ -177,7 +177,8 @@ public class BeansDeployer
                 
                 //Fire Event
                 fireAfterDeploymentValidationEvent();
-                
+
+                scanner.release();
                 deployed = true;
             }
 

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java?rev=1075417&r1=1075416&r2=1075417&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AbstractMetaDataDiscovery.java
 Mon Feb 28 16:43:54 2011
@@ -57,6 +57,11 @@ public abstract class AbstractMetaDataDi
 
     protected AbstractMetaDataDiscovery()
     {
+        initAnnotationDB();
+    }
+
+    private void initAnnotationDB()
+    {
         try
         {
             annotationDB = new AnnotationDB();
@@ -69,9 +74,9 @@ public abstract class AbstractMetaDataDi
         catch(Exception e)
         {
             throw new WebBeansDeploymentException(e);
-        }                
+        }
     }
-    
+
     /**
      * Configure the Web Beans Container with deployment information and fills
      * annotation database and beans.xml stream database.
@@ -89,8 +94,13 @@ public abstract class AbstractMetaDataDi
             throw new WebBeansDeploymentException(e);
         }
     }
-    
-    
+
+    @Override
+    public void release()
+    {
+        initAnnotationDB();
+    }
+
     abstract protected void configure() throws Exception;
 
     /**

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/config/WebBeansScannerTest.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/config/WebBeansScannerTest.java?rev=1075417&r1=1075416&r2=1075417&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/config/WebBeansScannerTest.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/config/WebBeansScannerTest.java
 Mon Feb 28 16:43:54 2011
@@ -24,6 +24,7 @@ import java.util.Set;
 
 import junit.framework.Assert;
 
+import 
org.apache.webbeans.lifecycle.test.OpenWebBeansTestMetaDataDiscoveryService;
 import org.apache.webbeans.newtests.AbstractUnitTest;
 import org.apache.webbeans.spi.ScannerService;
 
@@ -41,11 +42,15 @@ public class WebBeansScannerTest extends
     {
         List<Class<?>> classes = new ArrayList<Class<?>>();
         classes.add(ScannerTestBean.class);
-        
+
         //Start test container
         startContainer(classes);
-        
-        ScannerService scanner = getWebBeansContext().getScannerService();
+
+        OpenWebBeansTestMetaDataDiscoveryService scanner = 
(OpenWebBeansTestMetaDataDiscoveryService) 
getWebBeansContext().getScannerService();
+        scanner.deployClasses(classes);
+
+        scanner.scan();
+
         Set<Class<?>> classMap = scanner.getBeanClasses();
         Assert.assertNotNull(classMap);
         Assert.assertFalse(classMap.isEmpty());

Modified: 
openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java?rev=1075417&r1=1075416&r2=1075417&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
 (original)
+++ 
openwebbeans/trunk/webbeans-osgi/src/main/java/org/apache/webbeans/osgi/scanner/OsgiMetaDataScannerService.java
 Mon Feb 28 16:43:54 2011
@@ -76,6 +76,14 @@ public class OsgiMetaDataScannerService 
     }
 
     @Override
+    public void release()
+    {
+        beanClasses = new HashSet<Class<?>>();
+        beanXMLs = new HashSet<String>();
+        beanArchiveJarNames = new HashSet<String>();
+    }
+
+    @Override
     public void scan() throws WebBeansDeploymentException
     {
         logger.info("Using OsgiMetaDataScannerService!");

Modified: 
openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java?rev=1075417&r1=1075416&r2=1075417&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java
 (original)
+++ 
openwebbeans/trunk/webbeans-spi/src/main/java/org/apache/webbeans/spi/ScannerService.java
 Mon Feb 28 16:43:54 2011
@@ -47,6 +47,14 @@ public interface ScannerService
      */
     public void scan();
 
+
+    /**
+     * This method will get called once the information found by the current
+     * scan is not needed anymore and the ScannerService might free up
+     * resources.
+     */
+    public void release();
+
     
     /**
      * Gets xml configuration files that are occured


Reply via email to