org.robokind.api.common.lifecycle
Interface ManagedService<T>

Type Parameters:
T - type of service being managed
All Superinterfaces:
PropertyChangeSource
All Known Implementing Classes:
OSGiComponent

public interface ManagedService<T>
extends PropertyChangeSource

Manages a service throughout its lifetime of the service. A ManagedService provides information about the service's dependencies and tracks their availability. As dependencies become available, unavailable, or change, the ManagedService updates the services and its availability within the ServiceRegistry.

Author:
Matthew Stevenson

Field Summary
static String PROP_DEPENDENCY_CHANGED
          Property change event name for a dependency's status changing
static String PROP_SERVICE_CHANGED
          Property change event name for the managed service being modified.
static String PROP_SERVICE_TYPE
          Property name for the type of service managed.
 
Method Summary
 void dispose()
          Stops and unregisters the service, cleans up the service lifecycle and management, and stops and unregisters the ManagedService.
 int getAvailableDependencyCount()
          Returns the number of satisfied dependencies.
 List<DependencyDescriptor> getDependencies()
          Returns a list describing the service dependencies of this ManagedService.
 int getDependencyCount()
          Returns the number of dependencies for this ManagedService.
 boolean getDependencyStatus(String dependencyName)
          Returns true if the specified dependency is available.
 boolean getRegistrationEnabled()
          Returns true if automatic service registration is enabled.
 Properties getRegistrationProperties()
          Returns the registration properties to use when registering the service.
 String[] getServiceClassNames()
          Returns the class names of service being managed.
 boolean isAvailable()
          Returns true if the service is available and ready to use.
 boolean isRegistered()
          Returns true if the service has been added to the Service Registry.
 void register()
          Registers the service if it is available.
 void setRegistrationEnabled(boolean enabled)
          If set true, the Service being managed will be automatically added to the Service Registry when available.
 void start()
          Starts tracking dependencies and managing the service.
 void stop()
          Stops tracking dependencies.
 void unregister()
          Unregisters the service if it is registered.
 
Methods inherited from interface org.robokind.api.common.property.PropertyChangeSource
addPropertyChangeListener, addPropertyChangeListener, removePropertyChangeListener, removePropertyChangeListener
 

Field Detail

PROP_SERVICE_TYPE

static final String PROP_SERVICE_TYPE
Property name for the type of service managed.

See Also:
Constant Field Values

PROP_SERVICE_CHANGED

static final String PROP_SERVICE_CHANGED
Property change event name for the managed service being modified.

See Also:
Constant Field Values

PROP_DEPENDENCY_CHANGED

static final String PROP_DEPENDENCY_CHANGED
Property change event name for a dependency's status changing

See Also:
Constant Field Values
Method Detail

start

void start()
Starts tracking dependencies and managing the service.


stop

void stop()
Stops tracking dependencies.


dispose

void dispose()
Stops and unregisters the service, cleans up the service lifecycle and management, and stops and unregisters the ManagedService.


getDependencies

List<DependencyDescriptor> getDependencies()
Returns a list describing the service dependencies of this ManagedService.

Returns:
list describing the service dependencies of this ManagedService.

getDependencyCount

int getDependencyCount()
Returns the number of dependencies for this ManagedService.

Returns:
number of dependencies for this ManagedService

getAvailableDependencyCount

int getAvailableDependencyCount()
Returns the number of satisfied dependencies.

Returns:
number of satisfied dependencies

getDependencyStatus

boolean getDependencyStatus(String dependencyName)
Returns true if the specified dependency is available.

Parameters:
dependencyName - name of the dependency to check
Returns:
true if the specified dependency is available

setRegistrationEnabled

void setRegistrationEnabled(boolean enabled)
If set true, the Service being managed will be automatically added to the Service Registry when available. The default value is true.

Parameters:
enabled - if true the service will be automatically registered to the Service Registry when available.

getRegistrationEnabled

boolean getRegistrationEnabled()
Returns true if automatic service registration is enabled.

Returns:
true if automatic service registration is enabled

register

void register()
Registers the service if it is available.


unregister

void unregister()
Unregisters the service if it is registered. Call setRegistrationEnabled(false) to prevent the service from being registered when dependencies change.


getRegistrationProperties

Properties getRegistrationProperties()
Returns the registration properties to use when registering the service. These may change throughout the lifetime of the service.

Returns:
registration properties to use when registering the service

getServiceClassNames

String[] getServiceClassNames()
Returns the class names of service being managed.

Returns:
class names of service being managed

isAvailable

boolean isAvailable()
Returns true if the service is available and ready to use.

Returns:
true if the service is available and ready to use

isRegistered

boolean isRegistered()
Returns true if the service has been added to the Service Registry.

Returns:
true if the service has been added to the Service Registry


Copyright © 2011-2013. All Rights Reserved.