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)