Class ServiceFactoryComponentManager<S>
java.lang.Object
org.apache.felix.scr.impl.manager.AbstractComponentManager<S>
org.apache.felix.scr.impl.manager.SingleComponentManager<S>
org.apache.felix.scr.impl.manager.ServiceFactoryComponentManager<S>
- All Implemented Interfaces:
ComponentManager<S>
,org.osgi.framework.ServiceFactory<S>
- Direct Known Subclasses:
PrototypeServiceFactoryComponentManager
The
ServiceFactoryComponentManager
for components specified with <service serviceFactory='true'/>
in the xml metadata. The component must be delayed, not immediate or factory.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.felix.scr.impl.manager.SingleComponentManager
SingleComponentManager.SetImplementationObject<S>
Nested classes/interfaces inherited from class org.apache.felix.scr.impl.manager.AbstractComponentManager
AbstractComponentManager.State
-
Field Summary
FieldsFields inherited from class org.apache.felix.scr.impl.manager.AbstractComponentManager
m_activationLock, m_container, m_factoryInstance, REASONS, registrationManager
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
ConstructorsConstructorDescriptionServiceFactoryComponentManager
(ComponentContainer<S> container, ComponentMethods<S> componentMethods) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
deleteComponent
(int reason) private Collection<ComponentContextImpl<S>>
org.osgi.service.component.ComponentInstance
getService
(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration) (package private) boolean
(package private) <T> void
invokeBindMethod
(DependencyManager<S, T> dependencyManager, RefPair<S, T> refPair, int trackingCount) protected MethodResult
(package private) <T> void
invokeUnbindMethod
(DependencyManager<S, T> dependencyManager, RefPair<S, T> oldRefPair, int trackingCount) (package private) <T> boolean
invokeUpdatedMethod
(DependencyManager<S, T> dependencyManager, RefPair<S, T> refPair, int trackingCount) Invoke updated method(package private) void
void
setServiceProperties
(Dictionary<String, ?> serviceProperties) void
ungetService
(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> registration, S service) Methods inherited from class org.apache.felix.scr.impl.manager.SingleComponentManager
clear, clearServiceProperties, createImplementationObject, disposeImplementationObject, getComponentManagers, getProperties, getServiceInternal, getServiceProperties, getServiceReference, getServiceRegistration, preDeregister, reconfigure, reconfigure, registerComponentId, setFactoryProperties, unregisterComponentId
Methods inherited from class org.apache.felix.scr.impl.manager.AbstractComponentManager
activateInternal, collectDependencies, copyTo, copyToDictionary, copyToMap, deactivateInternal, disable, disableInternal, dispose, dispose, dumpThreads, enable, enableInternal, enableLatchWait, getActivator, getBundle, getBundleContext, getComponentMetadata, getComponentMethods, getDependencyManager, getDependencyManagers, getFailureReason, getId, getLockTimeout, getLogger, getProvidedServices, getReferenceManagers, getRegisteredServiceReference, getReversedDependencyManagers, getSpecState, getState, getTrackingCount, isFactory, isImmediate, isStateLocked, notifyWaiters, obtainActivationReadLock, obtainActivationWriteLock, obtainStateLock, registerMissingDependency, registerService, releaseActivationReadLock, releaseActivationWriteeLock, releaseStateLock, setFailureReason, setServiceProperties, setState, toString, tracked, unregisterService, updateTargets, verifyDependencyManagers, waitForTracked
-
Field Details
-
serviceContexts
-
-
Constructor Details
-
ServiceFactoryComponentManager
public ServiceFactoryComponentManager(ComponentContainer<S> container, ComponentMethods<S> componentMethods) - Parameters:
container
- ComponentHolder for configuration managementcomponentMethods
-
-
-
Method Details
-
setServiceProperties
- Overrides:
setServiceProperties
in classSingleComponentManager<S>
-
postRegister
void postRegister()- Overrides:
postRegister
in classSingleComponentManager<S>
-
deleteComponent
protected void deleteComponent(int reason) - Overrides:
deleteComponent
in classSingleComponentManager<S>
-
getService
public S getService(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> serviceRegistration) - Specified by:
getService
in interfaceorg.osgi.framework.ServiceFactory<S>
- Overrides:
getService
in classSingleComponentManager<S>
-
ungetService
public void ungetService(org.osgi.framework.Bundle bundle, org.osgi.framework.ServiceRegistration<S> registration, S service) - Specified by:
ungetService
in interfaceorg.osgi.framework.ServiceFactory<S>
- Overrides:
ungetService
in classSingleComponentManager<S>
-
getComponentContexts
-
invokeBindMethod
<T> void invokeBindMethod(DependencyManager<S, T> dependencyManager, RefPair<S, T> refPair, int trackingCount) - Overrides:
invokeBindMethod
in classSingleComponentManager<S>
-
invokeUpdatedMethod
<T> boolean invokeUpdatedMethod(DependencyManager<S, T> dependencyManager, RefPair<S, T> refPair, int trackingCount) Description copied from class:AbstractComponentManager
Invoke updated method- Overrides:
invokeUpdatedMethod
in classSingleComponentManager<S>
- Returns:
true
if the component needs reactivation,false
otherwise.
-
invokeUnbindMethod
<T> void invokeUnbindMethod(DependencyManager<S, T> dependencyManager, RefPair<S, T> oldRefPair, int trackingCount) - Overrides:
invokeUnbindMethod
in classSingleComponentManager<S>
-
invokeModifiedMethod
- Overrides:
invokeModifiedMethod
in classSingleComponentManager<S>
-
hasInstance
boolean hasInstance()- Overrides:
hasInstance
in classSingleComponentManager<S>
-
getComponentInstance
public org.osgi.service.component.ComponentInstance getComponentInstance()- Overrides:
getComponentInstance
in classSingleComponentManager<S>
-