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 Classes Modifier and Type Class Description protected static interface
SingleComponentManager.SetImplementationObject<S>
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
Constructors Constructor Description SingleComponentManager(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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>
getComponentInstance()
void
getComponentManagers(List<AbstractComponentManager<S>> cms)
Map<String,Object>
getProperties()
Returns the (private copy) of the Component properties to be used for the ComponentContext as well as eventual service registration.S
getService(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration)
Dictionary<String,Object>
getServiceProperties()
Returns the subset of component properties to be used as service properties.protected org.osgi.framework.ServiceRegistration<S>
getServiceRegistration()
protected MethodResult
invokeModifiedMethod()
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 Detail
-
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 Detail
-
deleteComponent
protected void deleteComponent(int reason)
- Specified by:
deleteComponent
in classAbstractComponentManager<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 interfaceComponentManager<S>
- Specified by:
getProperties
in classAbstractComponentManager<S>
- Returns:
- a private map of component properties
-
setServiceProperties
public void setServiceProperties(Dictionary<String,?> serviceProperties)
- Specified by:
setServiceProperties
in classAbstractComponentManager<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 classAbstractComponentManager<S>
-
getServiceRegistration
protected org.osgi.framework.ServiceRegistration<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
protected MethodResult 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
public void getComponentManagers(List<AbstractComponentManager<S>> cms)
- Specified by:
getComponentManagers
in classAbstractComponentManager<S>
-
-