Class ComponentContextImpl<S>

java.lang.Object
org.apache.felix.scr.impl.manager.ComponentContextImpl<S>
All Implemented Interfaces:
ExtComponentContext, org.osgi.service.component.ComponentContext

public class ComponentContextImpl<S> extends Object implements ExtComponentContext
Implementation for the ComponentContext interface
  • Field Details

    • m_componentManager

      private final SingleComponentManager<S> m_componentManager
    • edgeInfos

      private final EdgeInfo[] edgeInfos
    • m_componentInstance

      private final org.osgi.service.component.ComponentInstance<S> m_componentInstance
    • m_usingBundle

      private final org.osgi.framework.Bundle m_usingBundle
    • m_serviceRegistration

      private volatile org.osgi.framework.ServiceRegistration<S> m_serviceRegistration
    • m_implementationObject

      private volatile S m_implementationObject
    • m_implementationAccessible

      private volatile boolean m_implementationAccessible
    • accessibleLatch

      private final CountDownLatch accessibleLatch
    • serviceObjectsHelper

      private final ComponentServiceObjectsHelper serviceObjectsHelper
    • boundValues

      private Map<String,Map<RefPair<?,?>,Object>> boundValues
      Mapping of ref pairs to value bound
  • Constructor Details

    • ComponentContextImpl

      public ComponentContextImpl(SingleComponentManager<S> componentManager, org.osgi.framework.Bundle usingBundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration)
  • Method Details

    • unsetServiceRegistration

      public void unsetServiceRegistration()
    • cleanup

      public void cleanup()
    • getComponentServiceObjectsHelper

      public ComponentServiceObjectsHelper getComponentServiceObjectsHelper()
    • setImplementationObject

      public void setImplementationObject(S implementationObject)
    • setImplementationAccessible

      public void setImplementationAccessible(boolean implementationAccessible)
    • getEdgeInfo

      EdgeInfo getEdgeInfo(DependencyManager<S,?> dm)
    • getServiceRegistration

      org.osgi.framework.ServiceRegistration<S> getServiceRegistration()
    • getComponentManager

      protected SingleComponentManager<S> getComponentManager()
    • getComponentMetadata

      public ComponentMetadata getComponentMetadata()
    • getProperties

      public final Dictionary<String,Object> getProperties()
      Specified by:
      getProperties in interface org.osgi.service.component.ComponentContext
    • locateService

      public Object locateService(String name)
      Specified by:
      locateService in interface org.osgi.service.component.ComponentContext
    • locateService

      public Object locateService(String name, org.osgi.framework.ServiceReference ref)
      Specified by:
      locateService in interface org.osgi.service.component.ComponentContext
    • locateServices

      public Object[] locateServices(String name)
      Specified by:
      locateServices in interface org.osgi.service.component.ComponentContext
    • getBundleContext

      public org.osgi.framework.BundleContext getBundleContext()
      Specified by:
      getBundleContext in interface org.osgi.service.component.ComponentContext
    • getUsingBundle

      public org.osgi.framework.Bundle getUsingBundle()
      Specified by:
      getUsingBundle in interface org.osgi.service.component.ComponentContext
    • getLogger

      public ComponentLogger getLogger()
    • getComponentInstance

      public org.osgi.service.component.ComponentInstance<S> getComponentInstance()
      Specified by:
      getComponentInstance in interface org.osgi.service.component.ComponentContext
    • enableComponent

      public void enableComponent(String name)
      Specified by:
      enableComponent in interface org.osgi.service.component.ComponentContext
    • disableComponent

      public void disableComponent(String name)
      Specified by:
      disableComponent in interface org.osgi.service.component.ComponentContext
    • getServiceReference

      public org.osgi.framework.ServiceReference<S> getServiceReference()
      Specified by:
      getServiceReference in interface org.osgi.service.component.ComponentContext
    • setServiceProperties

      public void setServiceProperties(Dictionary<String,?> properties)
      Description copied from interface: ExtComponentContext
      Sets the service registration properties of the component registered as a service. If the component is not registered as a service, this method has no effect.

      The component.id and component.name property are set by the Service Component Runtime and cannot be removed or replaced.

      Specified by:
      setServiceProperties in interface ExtComponentContext
      Parameters:
      properties - properties to update the default component properties with. If this is null or empty the default set of properties as defined in Section 112.6, Component Properties, are used as the service registration properties.
    • getImplementationObject

      S getImplementationObject(boolean requireAccessible)
    • getBoundValues

      public Map<RefPair<?,?>,Object> getBoundValues(String key)
    • createNewFieldHandlerMap

      private Map<RefPair<?,?>,Object> createNewFieldHandlerMap()