felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gno...@apache.org
Subject svn commit: r1543754 - in /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl: Activator.java BundleComponentActivator.java
Date Wed, 20 Nov 2013 10:10:20 GMT
Author: gnodet
Date: Wed Nov 20 10:10:20 2013
New Revision: 1543754

URL: http://svn.apache.org/r1543754
Log:
[FELIX-4317] SCR implementation should avoid using bundleContext.getBundle()

Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.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=1543754&r1=1543753&r2=1543754&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 Wed Nov 20 10:10:20
2013
@@ -56,6 +56,9 @@ public class Activator extends AbstractE
     // this bundle's context
     private static BundleContext m_context;
 
+    // this bundle
+    private static Bundle m_bundle;
+
     // the log service to log messages to
     private static volatile ServiceTracker m_logService;
 
@@ -85,6 +88,7 @@ public class Activator extends AbstractE
     public void start( BundleContext context ) throws Exception
     {
         m_context = context;
+        m_bundle = context.getBundle();
         super.start(context);
     }
 
@@ -101,8 +105,8 @@ public class Activator extends AbstractE
         m_configuration.start( m_context );
 
         // log SCR startup
-        log( LogService.LOG_INFO, m_context.getBundle(), " Version = {0}",
-            new Object[] {m_context.getBundle().getHeaders().get( Constants.BUNDLE_VERSION
)}, null );
+        log( LogService.LOG_INFO, m_bundle, " Version = {0}",
+            new Object[] {m_bundle.getHeaders().get( Constants.BUNDLE_VERSION )}, null );
 
         // create and start the component actor
         m_componentActor = new ComponentActorThread();
@@ -188,7 +192,7 @@ public class Activator extends AbstractE
             try {
                 this.started.await(m_configuration.stopTimeout(), TimeUnit.MILLISECONDS);
             } catch (InterruptedException e) {
-                log( LogService.LOG_WARNING, m_context.getBundle(), "The wait for bundle
{0}/{1} being started before destruction has been interrupted.",
+                log( LogService.LOG_WARNING, m_bundle, "The wait for bundle {0}/{1} being
started before destruction has been interrupted.",
                         new Object[] {bundle.getSymbolicName(), bundle.getBundleId()}, e
);
             }
             disposeComponents( this.bundle );
@@ -216,7 +220,7 @@ public class Activator extends AbstractE
         BundleContext context = bundle.getBundleContext();
         if ( context == null )
         {
-            log( LogService.LOG_ERROR, m_context.getBundle(), "Cannot get BundleContext of
bundle {0}/{1}",
+            log( LogService.LOG_ERROR, m_bundle, "Cannot get BundleContext of bundle {0}/{1}",
                 new Object[] {bundle.getSymbolicName(), bundle.getBundleId()}, null );
             return;
         }
@@ -244,7 +248,7 @@ public class Activator extends AbstractE
         // terminate if already loaded (or currently being loaded)
         if ( loaded )
         {
-            log( LogService.LOG_DEBUG, m_context.getBundle(), "Components for bundle {0}/{1}
already loaded. Nothing to do.",
+            log( LogService.LOG_DEBUG, m_bundle, "Components for bundle {0}/{1} already loaded.
Nothing to do.",
                 new Object[] {bundle.getSymbolicName(), bundle.getBundleId()}, null );
             return;
         }
@@ -273,14 +277,14 @@ public class Activator extends AbstractE
             {
                 log(
                     LogService.LOG_DEBUG,
-                    m_context.getBundle(),
+                    m_bundle,
                     "Bundle {0}/{1} has been stopped while trying to activate its components.
Trying again when the bundles gets started again.",
                 new Object[] {bundle.getSymbolicName(), bundle.getBundleId()},
                     e );
             }
             else
             {
-                log( LogService.LOG_ERROR, m_context.getBundle(), "Error while loading components
of bundle {0}/{1}",
+                log( LogService.LOG_ERROR, m_bundle, "Error while loading components of bundle
{0}/{1}",
                 new Object[] {bundle.getSymbolicName(), bundle.getBundleId()}, e );
             }
         }
@@ -310,7 +314,7 @@ public class Activator extends AbstractE
             }
             catch ( Exception e )
             {
-                log( LogService.LOG_ERROR, m_context.getBundle(), "Error while disposing
components of bundle {0}/{1}",
+                log( LogService.LOG_ERROR, m_bundle, "Error while disposing components of
bundle {0}/{1}",
                     new Object[] {bundle.getSymbolicName(), bundle.getBundleId()}, e );
             }
         }
@@ -328,7 +332,7 @@ public class Activator extends AbstractE
 
     @Override
     protected void error(String msg, Throwable t) {
-        log( LogService.LOG_DEBUG, m_context.getBundle(), msg, t );
+        log( LogService.LOG_DEBUG, m_bundle, msg, t );
     }
 
     public static void log( int level, Bundle bundle, String pattern, Object[] arguments,
Throwable ex )

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java?rev=1543754&r1=1543753&r2=1543754&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java
(original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java
Wed Nov 20 10:10:20 2013
@@ -59,6 +59,9 @@ public class BundleComponentActivator im
     // global component registration
     private final ComponentRegistry m_componentRegistry;
 
+    // The bundle owning the registered component
+    private final Bundle m_bundle;
+
     // The bundle context owning the registered component
     private final BundleContext m_context;
 
@@ -97,6 +100,7 @@ public class BundleComponentActivator im
         m_componentRegistry = componentRegistry;
         m_componentActor = componentActor;
         m_context = context;
+        m_bundle = context.getBundle();
 
         // have the LogService handy (if available)
         m_logService = new ServiceTracker( context, Activator.LOGSERVICE_CLASS, null );
@@ -104,10 +108,10 @@ public class BundleComponentActivator im
         m_configuration = configuration;
 
         log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] active",
-                new Object[] {m_context.getBundle().getBundleId()}, null, null, null );
+                new Object[] {m_bundle.getBundleId()}, null, null, null );
 
         // Get the Metadata-Location value from the manifest
-        String descriptorLocations = ( String ) m_context.getBundle().getHeaders().get( "Service-Component"
);
+        String descriptorLocations = ( String ) m_bundle.getHeaders().get( "Service-Component"
);
         if ( descriptorLocations == null )
         {
             throw new ComponentException( "Service-Component entry not found in the manifest"
);
@@ -129,7 +133,7 @@ public class BundleComponentActivator im
     private void initialize( String descriptorLocations )
     {
         log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] descriptor locations
{1}",
-                new Object[] {m_context.getBundle().getBundleId(), descriptorLocations},
null, null, null );
+                new Object[] {m_bundle.getBundleId(), descriptorLocations}, null, null, null
);
 
         // 112.4.1: The value of the the header is a comma separated list of XML entries
within the Bundle
         StringTokenizer st = new StringTokenizer( descriptorLocations, ", " );
@@ -138,7 +142,7 @@ public class BundleComponentActivator im
         {
             String descriptorLocation = st.nextToken();
 
-            URL[] descriptorURLs = findDescriptors( m_context.getBundle(), descriptorLocation
);
+            URL[] descriptorURLs = findDescriptors( m_bundle, descriptorLocation );
             if ( descriptorURLs.length == 0 )
             {
                 // 112.4.1 If an XML document specified by the header cannot be located in
the bundle and its attached
@@ -158,19 +162,19 @@ public class BundleComponentActivator im
         for ( ComponentHolder componentHolder : m_managers )
         {
             log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] May enable
component holder {1}",
-                    new Object[] {m_context.getBundle().getBundleId(), componentHolder.getComponentMetadata().getName()},
null, null, null );
+                    new Object[] {m_bundle.getBundleId(), componentHolder.getComponentMetadata().getName()},
null, null, null );
 
             if ( componentHolder.getComponentMetadata().isEnabled() )
             {
                 log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] Enabling
component holder {1}",
-                        new Object[] {m_context.getBundle().getBundleId(), componentHolder.getComponentMetadata().getName()},
null, null, null );
+                        new Object[] {m_bundle.getBundleId(), componentHolder.getComponentMetadata().getName()},
null, null, null );
 
                 componentHolder.enableComponents( false );
             }
             else
             {
                 log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] Will
not enable component holder {1}",
-                        new Object[] {m_context.getBundle().getBundleId(), componentHolder.getComponentMetadata().getName()},
null, null, null );
+                        new Object[] {m_bundle.getBundleId(), componentHolder.getComponentMetadata().getName()},
null, null, null );
             }
         }
     }
@@ -233,7 +237,7 @@ public class BundleComponentActivator im
             stream = descriptorURL.openStream();
 
             BufferedReader in = new BufferedReader( new InputStreamReader( stream, "UTF-8"
) );
-            XmlHandler handler = new XmlHandler( m_context.getBundle(), this );
+            XmlHandler handler = new XmlHandler( m_bundle, this );
             KXml2SAXParser parser;
 
             parser = new KXml2SAXParser( in );
@@ -251,7 +255,7 @@ public class BundleComponentActivator im
                     // check and reserve the component name (if not null)
                     if ( metadata.getName() != null )
                     {
-                        key = m_componentRegistry.checkComponentName( m_context.getBundle(),
metadata.getName() );
+                        key = m_componentRegistry.checkComponentName( m_bundle, metadata.getName()
);
                     }
 
                     // validate the component metadata
@@ -265,7 +269,7 @@ public class BundleComponentActivator im
                     m_managers.add( holder );
 
                     log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] ComponentHolder
created for {1}",
-                            new Object[] {m_context.getBundle().getBundleId(), metadata.getName()},
null, null, null );
+                            new Object[] {m_bundle.getBundleId(), metadata.getName()}, null,
null, null );
 
                 }
                 catch ( Throwable t )
@@ -320,7 +324,7 @@ public class BundleComponentActivator im
         if ( m_active.compareAndSet( true, false ))
         {
             log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] will destroy
{1} instances", new Object[]
-                    { m_context.getBundle().getBundleId(), m_managers.size() }, null, null,
null );
+                    { m_bundle.getBundleId(), m_managers.size() }, null, null, null );
 
             while ( m_managers.size() != 0 )
             {
@@ -337,14 +341,14 @@ public class BundleComponentActivator im
                 }
                 finally
                 {
-                    m_componentRegistry.unregisterComponentHolder( m_context.getBundle(),
holder.getComponentMetadata()
+                    m_componentRegistry.unregisterComponentHolder( m_bundle, holder.getComponentMetadata()
                             .getName() );
                 }
 
             }
 
             log( LogService.LOG_DEBUG, "BundleComponentActivator : Bundle [{0}] STOPPED",
new Object[]
-                    {m_context.getBundle().getBundleId()}, null, null, null );
+                    {m_bundle.getBundleId()}, null, null, null );
 
             m_logService.close();
             m_closeLatch.countDown();
@@ -481,7 +485,7 @@ public class BundleComponentActivator im
             return m_managers.toArray( new ComponentHolder[m_managers.size()] );
         }
 
-        ComponentHolder componentHolder = m_componentRegistry.getComponentHolder( m_context.getBundle(),
name );
+        ComponentHolder componentHolder = m_componentRegistry.getComponentHolder( m_bundle,
name );
         if (componentHolder != null)
         {
             return new ComponentHolder[] { componentHolder };
@@ -609,7 +613,7 @@ public class BundleComponentActivator im
                 Object logger = logService.getService();
                 if ( logger == null )
                 {
-                    Activator.log( level, getBundleContext().getBundle(), message, ex );
+                    Activator.log( level, m_bundle, message, ex );
                 }
                 else
                 {



Mime
View raw message