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 2008/10/10 23:34:40 UTC

svn commit: r703579 - in /felix/trunk/framework/src/main/java/org/apache/felix: framework/BundleInfo.java framework/ExportedPackageImpl.java framework/Felix.java moduleloader/IModule.java moduleloader/ModuleImpl.java

Author: rickhall
Date: Fri Oct 10 14:34:39 2008
New Revision: 703579

URL: http://svn.apache.org/viewvc?rev=703579&view=rev
Log:
Moved removal pending flag from the module to the bundle. (FELIX-761)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleInfo.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ExportedPackageImpl.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
    felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/IModule.java
    felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleInfo.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleInfo.java?rev=703579&r1=703578&r2=703579&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleInfo.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleInfo.java Fri Oct 10 14:34:39 2008
@@ -30,6 +30,7 @@
 abstract class BundleInfo
 {
     private Logger m_logger = null;
+    private boolean m_removalPending = false;
     private IModule[] m_modules = null;
     private int m_state = 0;
     private BundleActivator m_activator = null;
@@ -65,6 +66,16 @@
         return m_logger;
     }
 
+    public synchronized boolean isRemovalPending()
+    {
+        return m_removalPending;
+    }
+
+    public synchronized void setRemovalPending(boolean removalPending)
+    {
+        m_removalPending = removalPending;
+    }
+
     /**
      * Returns an array of all modules associated with the bundle represented by
      * this <tt>BundleInfo</tt> object. A module in the array corresponds to a

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ExportedPackageImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ExportedPackageImpl.java?rev=703579&r1=703578&r2=703579&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ExportedPackageImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ExportedPackageImpl.java Fri Oct 10 14:34:39 2008
@@ -88,7 +88,7 @@
 
     public boolean isRemovalPending()
     {
-        return m_exportingModule.isRemovalPending();
+        return m_exportingBundle.getInfo().isRemovalPending();
     }
 
     public String toString()

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=703579&r1=703578&r2=703579&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Fri Oct 10 14:34:39 2008
@@ -1899,9 +1899,8 @@
 
                 fireBundleEvent(BundleEvent.UNRESOLVED, bundle);
 
-                // Mark previous the bundle's old module for removal.
-                ((ModuleImpl) info.getModules()[info.getModules().length - 2])
-                    .setRemovalPending(true);
+                // Mark the bundle as removal pending.
+                info.setRemovalPending(true);
 
                 fireBundleEvent(BundleEvent.UPDATED, bundle);
 
@@ -2137,9 +2136,8 @@
             // Set the bundle's persistent state to uninstalled.
             target.getInfo().setPersistentStateUninstalled();
 
-            // Mark current module for removal since it can no longer
-            // be used to resolve other modules per the spec.
-            ((ModuleImpl) target.getInfo().getCurrentModule()).setRemovalPending(true);
+            // Mark the bundle as removal pending.
+            target.getInfo().setRemovalPending(true);
 
             // Put bundle in uninstalled bundle array.
             rememberUninstalledBundle(bundle);
@@ -2343,7 +2341,7 @@
 
                 if (bundle != null)
                 {
-                    ((ModuleImpl) bundle.getInfo().getCurrentModule()).setRemovalPending(true);
+                    bundle.getInfo().setRemovalPending(true);
                 }
 
                 if ((System.getSecurityManager() != null) &&

Modified: felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/IModule.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/IModule.java?rev=703579&r1=703578&r2=703579&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/IModule.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/IModule.java Fri Oct 10 14:34:39 2008
@@ -28,8 +28,6 @@
     public IContentLoader getContentLoader();
     public IWire[] getWires();
 
-    public boolean isRemovalPending();
-
     public Class getClass(String name) throws ClassNotFoundException;
     public URL getResource(String name);
     public Enumeration getResources(String name);

Modified: felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java?rev=703579&r1=703578&r2=703579&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/moduleloader/ModuleImpl.java Fri Oct 10 14:34:39 2008
@@ -29,7 +29,6 @@
 {
     private Logger m_logger = null;
     private String m_id = null;
-    private boolean m_removalPending = false;
     private IModuleDefinition m_md = null;
     private IContentLoader m_contentLoader = null;
     private IModule[] m_fragments = null;
@@ -162,16 +161,6 @@
         return m_dependents;
     }
 
-    public boolean isRemovalPending()
-    {
-        return m_removalPending;
-    }
-
-    public void setRemovalPending(boolean removalPending)
-    {
-        m_removalPending = removalPending;
-    }
-
     public Class getClass(String name) throws ClassNotFoundException
     {
         try