Class SingleComponentManager<S>

java.lang.Object
org.apache.felix.scr.impl.manager.AbstractComponentManager<S>
org.apache.felix.scr.impl.manager.SingleComponentManager<S>
All Implemented Interfaces:
ComponentManager<S>, org.osgi.framework.ServiceFactory<S>
Direct Known Subclasses:
ServiceFactoryComponentManager

public class SingleComponentManager<S> extends AbstractComponentManager<S> implements org.osgi.framework.ServiceFactory<S>
The default ComponentManager. Objects of this class are responsible for managing implementation object's lifecycle.
  • Constructor Details

    • SingleComponentManager

      public SingleComponentManager(ComponentContainer<S> container, ComponentMethods<S> componentMethods)
      The constructor receives both the activator and the metadata
      Parameters:
      componentMethods -
    • SingleComponentManager

      public SingleComponentManager(ComponentContainer<S> container, ComponentMethods<S> componentMethods, boolean factoryInstance)
  • Method Details

    • deleteComponent

      protected void deleteComponent(int reason)
      Specified by:
      deleteComponent in class AbstractComponentManager<S>
    • getComponentInstance

      public org.osgi.service.component.ComponentInstance<S> getComponentInstance()
    • createImplementationObject

      protected S createImplementationObject(org.osgi.framework.Bundle usingBundle, SingleComponentManager.SetImplementationObject<S> setter, ComponentContextImpl<S> componentContext)
    • disposeImplementationObject

      protected void disposeImplementationObject(ComponentContextImpl<S> componentContext, int reason)
    • setFactoryProperties

      protected void setFactoryProperties(Dictionary<String,?> dictionary)
    • getProperties

      public Map<String,Object> getProperties()
      Returns the (private copy) of the Component properties to be used for the ComponentContext as well as eventual service registration.

      Method implements the Component Properties provisioning as described in 112.6, Component Properties.

      Specified by:
      getProperties in interface ComponentManager<S>
      Specified by:
      getProperties in class AbstractComponentManager<S>
      Returns:
      a private map of component properties
    • setServiceProperties

      public void setServiceProperties(Dictionary<String,?> serviceProperties)
      Specified by:
      setServiceProperties in class AbstractComponentManager<S>
    • getServiceProperties

      public Dictionary<String,Object> getServiceProperties()
      Description copied from class: AbstractComponentManager
      Returns the subset of component properties to be used as service properties. These properties are all component properties where property name does not start with dot (.), properties which are considered private.
      Overrides:
      getServiceProperties in class AbstractComponentManager<S>
    • getServiceRegistration

      protected org.osgi.framework.ServiceRegistration<S> getServiceRegistration()
      Overrides:
      getServiceRegistration in class AbstractComponentManager<S>
    • reconfigure

      public void reconfigure(Map<String,Object> configuration, boolean configurationDeleted, TargetedPID factoryPid)
      Called by the Configuration Admin Service to update the component with Configuration properties.

      This causes the component to be reactivated with the new configuration unless no configuration has ever been set on this component and the configuration parameter is null. In this case nothing is to be done. If a configuration has previously been set and now the configuration is deleted, the configuration parameter is null and the component has to be reactivated with the default configuration.

      Specified by:
      reconfigure in class AbstractComponentManager<S>
      Parameters:
      configuration - The configuration properties for the component from the Configuration Admin Service or null if there is no configuration or if the configuration has just been deleted.
      configurationDeleted - TODO
      factoryPid - TODO
    • invokeModifiedMethod

      protected MethodResult invokeModifiedMethod()
    • getService

      public S getService(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration)
      Specified by:
      getService in interface org.osgi.framework.ServiceFactory<S>
    • ungetService

      public void ungetService(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration, S o)
      Specified by:
      ungetService in interface org.osgi.framework.ServiceFactory<S>
    • getComponentManagers

      public void getComponentManagers(List<AbstractComponentManager<S>> cms)
      Specified by:
      getComponentManagers in class AbstractComponentManager<S>