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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static interface
TheSetImplementationObject
interface provides an API for component managers to setup the implementation object and potentially other parts as part of thecreateImplementationObject(org.osgi.framework.Bundle, org.apache.felix.scr.impl.manager.SingleComponentManager.SetImplementationObject<S>, org.apache.felix.scr.impl.manager.ComponentContextImpl<S>)
method processing.Nested classes/interfaces inherited from class org.apache.felix.scr.impl.manager.AbstractComponentManager
AbstractComponentManager.State
-
Field Summary
Fields inherited from class org.apache.felix.scr.impl.manager.AbstractComponentManager
m_activationLock, m_container, m_factoryInstance
Fields inherited from interface org.apache.felix.scr.impl.manager.ComponentManager
STATE_ACTIVE, STATE_DISPOSED, STATE_SATISFIED, STATE_UNSATISFIED_CONFIGURATION, STATE_UNSATISFIED_REFERENCE
-
Constructor Summary
ConstructorsConstructorDescriptionSingleComponentManager
(ComponentContainer<S> container, ComponentMethods<S> componentMethods) The constructor receives both the activator and the metadataSingleComponentManager
(ComponentContainer<S> container, ComponentMethods<S> componentMethods, boolean factoryInstance) -
Method Summary
Modifier and TypeMethodDescriptionprotected S
createImplementationObject
(org.osgi.framework.Bundle usingBundle, SingleComponentManager.SetImplementationObject<S> setter, ComponentContextImpl<S> componentContext) protected void
deleteComponent
(int reason) protected void
disposeImplementationObject
(ComponentContextImpl<S> componentContext, int reason) org.osgi.service.component.ComponentInstance<S>
void
Returns the (private copy) of the Component properties to be used for the ComponentContext as well as eventual service registration.getService
(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration) Returns the subset of component properties to be used as service properties.protected org.osgi.framework.ServiceRegistration<S>
protected MethodResult
void
reconfigure
(Map<String, Object> configuration, boolean configurationDeleted, TargetedPID factoryPid) Called by the Configuration Admin Service to update the component with Configuration properties.protected void
setFactoryProperties
(Dictionary<String, ?> dictionary) void
setServiceProperties
(Dictionary<String, ?> serviceProperties) void
ungetService
(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration, S o) Methods inherited from class org.apache.felix.scr.impl.manager.AbstractComponentManager
collectDependencies, copyTo, copyToDictionary, copyToMap, disable, dispose, enable, getActivator, getBundle, getComponentMetadata, getFailureReason, getId, getLogger, getProvidedServices, getReferenceManagers, getRegisteredServiceReference, getSpecState, isFactory, isImmediate, registerService, setFailureReason, setServiceProperties, toString, unregisterService, verifyDependencyManagers
-
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 classAbstractComponentManager<S>
-
getComponentInstance
-
createImplementationObject
protected S createImplementationObject(org.osgi.framework.Bundle usingBundle, SingleComponentManager.SetImplementationObject<S> setter, ComponentContextImpl<S> componentContext) -
disposeImplementationObject
-
setFactoryProperties
-
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 interfaceComponentManager<S>
- Specified by:
getProperties
in classAbstractComponentManager<S>
- Returns:
- a private map of component properties
-
setServiceProperties
- Specified by:
setServiceProperties
in classAbstractComponentManager<S>
-
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 classAbstractComponentManager<S>
-
getServiceRegistration
- Overrides:
getServiceRegistration
in classAbstractComponentManager<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 theconfiguration
parameter isnull
. In this case nothing is to be done. If a configuration has previously been set and now the configuration is deleted, theconfiguration
parameter isnull
and the component has to be reactivated with the default configuration.- Specified by:
reconfigure
in classAbstractComponentManager<S>
- Parameters:
configuration
- The configuration properties for the component from the Configuration Admin Service ornull
if there is no configuration or if the configuration has just been deleted.configurationDeleted
- TODOfactoryPid
- TODO
-
invokeModifiedMethod
-
getService
public S getService(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration) - Specified by:
getService
in interfaceorg.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 interfaceorg.osgi.framework.ServiceFactory<S>
-
getComponentManagers
- Specified by:
getComponentManagers
in classAbstractComponentManager<S>
-