org.apache.felix.dm.impl.dependencies
Class TemporalServiceDependencyImpl

java.lang.Object
  extended by org.apache.felix.dm.impl.dependencies.DependencyBase
      extended by org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl
          extended by org.apache.felix.dm.impl.dependencies.TemporalServiceDependencyImpl
All Implemented Interfaces:
InvocationHandler, ComponentDependencyDeclaration, Dependency, DependencyActivation, ServiceDependency, TemporalServiceDependency, ServiceTrackerCustomizer

public class TemporalServiceDependencyImpl
extends ServiceDependencyImpl
implements TemporalServiceDependency, InvocationHandler

Temporal Service dependency implementation, used to hide temporary service dependency "outage". Only works with required dependency. (see javadoc in TemporalServiceDependency).


Field Summary
 
Fields inherited from class org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl
m_context, m_reference, m_serviceInstance, m_services, m_trackedServiceName, m_tracker
 
Fields inherited from class org.apache.felix.dm.impl.dependencies.DependencyBase
m_logger
 
Fields inherited from interface org.apache.felix.dm.ComponentDependencyDeclaration
STATE_AVAILABLE_OPTIONAL, STATE_AVAILABLE_REQUIRED, STATE_NAMES, STATE_UNAVAILABLE_OPTIONAL, STATE_UNAVAILABLE_REQUIRED
 
Constructor Summary
TemporalServiceDependencyImpl(BundleContext context, Logger logger)
          Creates a new Temporal Service Dependency.
 
Method Summary
 void addedService(ServiceReference ref, Object service)
          The ServiceTracker calls us here in order to inform about a service arrival.
 Object getService()
           
 Object invoke(Object proxy, Method method, Object[] args)
           
 void modifiedService(ServiceReference ref, Object service)
          The ServiceTracker calls us here when a tracked service properties are modified.
 void removedService(ServiceReference ref, Object service)
          The ServiceTracker calls us here when a tracked service is lost.
 ServiceDependency setRequired(boolean required)
          Sets the required flag which determines if this service is required or not.
 TemporalServiceDependency setTimeout(long timeout)
          Sets the timeout for this temporal dependency.
 
Methods inherited from class org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl
addingService, createCopy, getAutoConfigInstance, getAutoConfigName, getAutoConfigType, getInterface, getName, getProperties, getState, getType, invoke, invokeAdded, invokeAdded, invokeChanged, invokeRemoved, invokeRemoved, isAutoConfig, isAvailable, isPropagated, lookupService, lookupServiceReference, makeAvailable, setAutoConfig, setAutoConfig, setCallbacks, setCallbacks, setCallbacks, setCallbacks, setDefaultImplementation, setInstanceBound, setPropagate, setPropagate, setService, setService, setService, setService, start, stop, toString
 
Methods inherited from class org.apache.felix.dm.impl.dependencies.DependencyBase
isInstanceBound, isRequired, setIsInstanceBound, setIsRequired
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.felix.dm.ServiceDependency
setAutoConfig, setAutoConfig, setCallbacks, setCallbacks, setCallbacks, setCallbacks, setDefaultImplementation, setInstanceBound, setPropagate, setPropagate, setService, setService, setService, setService
 
Methods inherited from interface org.apache.felix.dm.Dependency
createCopy, getAutoConfigInstance, getAutoConfigName, getAutoConfigType, getProperties, invokeAdded, invokeRemoved, isAutoConfig, isAvailable, isInstanceBound, isPropagated, isRequired
 
Methods inherited from interface org.apache.felix.dm.ComponentDependencyDeclaration
getName, getState, getType
 

Constructor Detail

TemporalServiceDependencyImpl

public TemporalServiceDependencyImpl(BundleContext context,
                                     Logger logger)
Creates a new Temporal Service Dependency.

Parameters:
context - The bundle context of the bundle which is instantiating this dependency object
logger - the logger our Internal logger for logging events.
See Also:
DependencyActivatorBase.createTemporalServiceDependency()
Method Detail

setTimeout

public TemporalServiceDependency setTimeout(long timeout)
Sets the timeout for this temporal dependency. Specifying a timeout value of zero means that there is no timeout period, and an invocation on a missing service will fail immediately.

Specified by:
setTimeout in interface TemporalServiceDependency
Parameters:
timeout - the dependency timeout value greater or equals to 0
Returns:
this temporal dependency
Throws:
IllegalArgumentException - if the timeout is negative

setRequired

public ServiceDependency setRequired(boolean required)
Sets the required flag which determines if this service is required or not. This method just override the superclass method in order to check if the required flag is true (optional dependency is not supported by this class).

Specified by:
setRequired in interface ServiceDependency
Overrides:
setRequired in class ServiceDependencyImpl
Parameters:
required - the required flag, which must be set to true
Returns:
this service dependency
Throws:
IllegalArgumentException - if the "required" parameter is not true.

addedService

public void addedService(ServiceReference ref,
                         Object service)
The ServiceTracker calls us here in order to inform about a service arrival.

Specified by:
addedService in interface ServiceTrackerCustomizer
Overrides:
addedService in class ServiceDependencyImpl

modifiedService

public void modifiedService(ServiceReference ref,
                            Object service)
The ServiceTracker calls us here when a tracked service properties are modified.

Specified by:
modifiedService in interface ServiceTrackerCustomizer
Overrides:
modifiedService in class ServiceDependencyImpl
Parameters:
ref - The reference to the service that has been modified.
service - The service object for the specified referenced service.

removedService

public void removedService(ServiceReference ref,
                           Object service)
The ServiceTracker calls us here when a tracked service is lost.

Specified by:
removedService in interface ServiceTrackerCustomizer
Overrides:
removedService in class ServiceDependencyImpl
Parameters:
ref - The reference to the service that has been removed.
service - The service object for the specified referenced service.

getService

public Object getService()
Overrides:
getService in class ServiceDependencyImpl

invoke

public Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable
Specified by:
invoke in interface InvocationHandler
Throws:
Throwable


Copyright © 2011 Apache Software Foundation. All Rights Reserved.