You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2006/02/02 15:52:42 UTC

svn commit: r374402 - in /incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix: framework/ framework/searchpolicy/ moduleloader/

Author: rickhall
Date: Thu Feb  2 06:52:36 2006
New Revision: 374402

URL: http://svn.apache.org/viewcvs?rev=374402&view=rev
Log:
Added open()/close() methods to the IContentLoader interface so that we
could clean up opening/closing IContent objects in the IModuleFactory
implementation.

Modified:
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/Felix.java
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/IContentLoader.java
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/Felix.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/Felix.java?rev=374402&r1=374401&r2=374402&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/Felix.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/Felix.java Thu Feb  2 06:52:36 2006
@@ -3102,16 +3102,6 @@
             for (int i = 0; i < modules.length; i++)
             {
                 m_factory.removeModule(modules[i]);
-// TODO: FIX - DETERMINE IF CLOSING SHOULD BE PART OF MODULE FACTORY.
-                // Close module content for disposal.
-                modules[i].getContentLoader().getContent().close();
-                // Close module class path content for disposal.
-                IContent[] classPath =
-                    ((ContentLoaderImpl) modules[i].getContentLoader()).getClassPath();
-                for (int pathIdx = 0; pathIdx < classPath.length; pathIdx++)
-                {
-                    classPath[pathIdx].close();
-                }
             }
 
             // Purge all bundle revisions, but the current one.
@@ -3136,16 +3126,6 @@
         for (int i = 0; i < modules.length; i++)
         {
             m_factory.removeModule(modules[i]);
-// TODO: FIX - DETERMINE IF CLOSING SHOULD BE PART OF MODULE FACTORY.
-            // Close module content for disposal.
-            modules[i].getContentLoader().getContent().close();
-            // Close module class path content for disposal.
-            IContent[] classPath =
-                ((ContentLoaderImpl) modules[i].getContentLoader()).getClassPath();
-            for (int pathIdx = 0; pathIdx < classPath.length; pathIdx++)
-            {
-                classPath[pathIdx].close();
-            }
         }
 
         // Remove the bundle from the cache.

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java?rev=374402&r1=374401&r2=374402&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java Thu Feb  2 06:52:36 2006
@@ -33,6 +33,16 @@
         m_logger = logger;
     }
 
+    public void open()
+    {
+        // Nothing needed here.
+    }
+
+    public void close()
+    {
+        // Nothing needed here.
+    }
+
     public IContent getContent()
     {
         return null;

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java?rev=374402&r1=374401&r2=374402&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java Thu Feb  2 06:52:36 2006
@@ -36,20 +36,29 @@
     {
         m_logger = logger;
         m_content = content;
-// TODO: FIX - SINCE WE CLOSE IN FELIX.JAVA, MAYBE WE SHOULD OPEN THERE TOO.
+    }
+
+    public Logger getLogger()
+    {
+        return m_logger;
+    }
+
+    public void open()
+    {
         m_content.open();
-        m_contentPath = (contentPath == null) ? new IContent[0] : contentPath;
-        for (int i = 0; i < m_contentPath.length; i++)
+        for (int i = 0; (m_contentPath != null) && (i < m_contentPath.length); i++)
         {
-// TODO: FIX - SINCE WE CLOSE IN FELIX.JAVA, MAYBE WE SHOULD OPEN THERE TOO.
-            // Open all class path contents.
             m_contentPath[i].open();
         }
     }
 
-    public Logger getLogger()
+    public void close()
     {
-        return m_logger;
+        m_content.close();
+        for (int i = 0; (m_contentPath != null) && (i < m_contentPath.length); i++)
+        {
+            m_contentPath[i].close();
+        }
     }
 
     public IContent getContent()

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/IContentLoader.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/IContentLoader.java?rev=374402&r1=374401&r2=374402&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/IContentLoader.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/IContentLoader.java Thu Feb  2 06:52:36 2006
@@ -22,6 +22,9 @@
 
 public interface IContentLoader
 {
+    public void open();
+    public void close();
+
     public IContent getContent();
 
     public void setSearchPolicy(ISearchPolicy searchPolicy);

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java?rev=374402&r1=374401&r2=374402&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleFactoryImpl.java Thu Feb  2 06:52:36 2006
@@ -80,6 +80,11 @@
             {
                 // Remove from data structures.
                 m_moduleMap.remove(module.getId());
+                // Close the module's content loader to deinitialize it.
+                // TODO: This is not really the best place for this, but at
+                // least it is centralized with the call to IContentLoader.open()
+                // when a module's content loader is set below.
+                ((ModuleImpl) module).getContentLoader().close();
             }
             else
             {
@@ -97,6 +102,11 @@
         synchronized (this)
         {
             ((ModuleImpl) module).setContentLoader(contentLoader);
+            // Open the module's content loader to initialize it.
+            // TODO: This is not really the best place for this, but at
+            // least it is centralized with the call to IContentLoader.close()
+            // when the module is removed above.
+            contentLoader.open();
         }
     }
 

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java?rev=374402&r1=374401&r2=374402&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java Thu Feb  2 06:52:36 2006
@@ -22,17 +22,6 @@
 
 public class ModuleImpl implements IModule
 {
-    /**
-     * This is the index used to retrieve the key of an attribute;
-     * an attribute is represented as an <tt>Object[]</tt> instance.
-    **/
-    public static final int KEY_IDX = 0;
-    /**
-     * This is the index used to retrieve the value of an attribute;
-     * an attribute is represented as an <tt>Object[]</tt> instance.
-    **/
-    public static final int VALUE_IDX = 1;
-
     private Logger m_logger = null;
     private String m_id = null;
     private IContentLoader m_contentLoader = null;