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 2009/06/09 22:09:41 UTC

svn commit: r783121 - in /felix/trunk/framework/src/main/java/org/apache/felix/framework: Felix.java ModuleImpl.java

Author: rickhall
Date: Tue Jun  9 20:09:41 2009
New Revision: 783121

URL: http://svn.apache.org/viewvc?rev=783121&view=rev
Log:
Deferred activation should happen immediately if the bundle has already
defined classes. (FELIX-749)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java

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=783121&r1=783120&r2=783121&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 Tue Jun  9 20:09:41 2009
@@ -1481,10 +1481,14 @@
             // Set the bundle's context.
             bundle.setBundleContext(new BundleContextImpl(m_logger, this, bundle));
 
-            if (bundle.getRuntimeActivationPolicy() != IModule.LAZY_ACTIVATION)
+            // If the bundle's activation policy is eager or activation has already
+            // been triggered, then activate the bundle immediately.
+            if ((bundle.getRuntimeActivationPolicy() != IModule.LAZY_ACTIVATION)
+                || ((ModuleImpl) bundle.getCurrentModule()).isActivationTrigger())
             {
                 activateBundle(bundle);
             }
+            // Otherwise, defer bundle activation.
             else
             {
                 setBundleStateAndNotify(bundle, Bundle.STARTING);

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java?rev=783121&r1=783120&r2=783121&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java Tue Jun  9 20:09:41 2009
@@ -1172,7 +1172,7 @@
         return m_id;
     }
 
-    private synchronized boolean isActivationTrigger()
+    synchronized boolean isActivationTrigger()
     {
         return m_isActivationTriggered;
     }
@@ -1633,7 +1633,7 @@
                     }
 
                     // Perform deferred activation without holding the class loader lock,
-                    // if necessary.
+                    // if the class we are returning is the instigating class.
                     List list = (List) m_local.get();
                     if ((list != null)
                         && (list.size() > 0)