Author: djencks
Date: Mon Feb 29 18:59:23 2016
New Revision: 1732934
URL: http://svn.apache.org/viewvc?rev=1732934&view=rev
Log:
FELIX-5202 Improve use of correct bundle based on global extender setting
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
URL:
http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java?rev=1732934&r1=1732933&r2=1732934&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
(original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java Mon
Feb 29 18:59:23 2016
@@ -63,9 +63,12 @@ public class Activator extends AbstractE
// this bundle's context
private static BundleContext m_context;
+
+ //Either this bundle's context or the framework bundle context, depending
on the globalExtender setting.
+ private BundleContext m_globalContext;
// this bundle
- private static Bundle m_bundle;
+ private Bundle m_bundle;
// the log service to log messages to
private static volatile ServiceTracker<LogService, LogService>
m_logService;
@@ -112,19 +115,20 @@ public class Activator extends AbstractE
public void restart( boolean globalExtender )
{
- BundleContext context;
+ BundleContext context = m_globalContext;
if ( globalExtender )
{
- context = m_context.getBundle( Constants.SYSTEM_BUNDLE_LOCATION
).getBundleContext();
+ m_globalContext = m_context.getBundle(
Constants.SYSTEM_BUNDLE_LOCATION ).getBundleContext();
}
else
{
- context = m_context;
+ m_globalContext = m_context;
}
if ( m_packageAdmin != null )
{
log( LogService.LOG_INFO, m_bundle, "Stopping to restart with new
globalExtender setting: " + globalExtender, null );
//this really is a restart, not the initial start
+ // the initial start where m_globalContext is null should skip
this as m_packageAdmin should not yet be set.
try
{
super.stop(context);
@@ -137,7 +141,7 @@ public class Activator extends AbstractE
try
{
log( LogService.LOG_INFO, m_bundle, "Starting with globalExtender
setting: " + globalExtender, null );
- super.start( context );
+ super.start( m_globalContext );
}
catch ( Exception e )
{
@@ -153,7 +157,7 @@ public class Activator extends AbstractE
m_componentBundles = new HashMap<Long, BundleComponentActivator>();
m_componentRegistry = new ComponentRegistry( );
- final ServiceComponentRuntime runtime = new
ServiceComponentRuntimeImpl(m_context, m_componentRegistry);
+ final ServiceComponentRuntime runtime = new
ServiceComponentRuntimeImpl(m_globalContext, m_componentRegistry);
m_runtime_reg =
m_context.registerService(ServiceComponentRuntime.class,
runtime, null);
@@ -474,7 +478,7 @@ public class Activator extends AbstractE
* @param message The message to log
* @param ex An optional <code>Throwable</code> whose stack trace is
written,
* or <code>null</code> to not log a stack trace.
- */
+ */
public static void log( int level, Bundle bundle, String message,
Throwable ex )
{
if ( isLogEnabled( level ) )