Class 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 Detail

      • SingleComponentManager

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

      • getComponentInstance

        public org.osgi.service.component.ComponentInstance<S> getComponentInstance()
      • 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
      • 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>