***  This class provides Binary Compatibility only, not Source Compatibility  ***

com.sas.services.discovery
Class RegistryDiscoveryService

com.sas.services.discovery.RegistryDiscoveryService
All Implemented Interfaces:
com.sas.entities.EntityKeyInterface, FindServiceInterface, java.rmi.Remote

public final class RegistryDiscoveryService
implements FindServiceInterface

A discovery service which can be used to locate foundation services which have been bound to an RMI registry.

This discovery service is a stateless service which lists all of the objects which have been bound to the RMI registry and may be used to return a collection of services which satisfy a requested service template which describes the interfaces and optionally attributes which the desired service must implement.

Since:
9.2

Field Summary
 
Fields inherited from interface com.sas.services.discovery.FindServiceInterface
FIND_ALL_MATCHES, FIND_ONE_MATCH
 
Constructor Summary
RegistryDiscoveryService()
          Constructs a discovery service which may be used to locate foundation services which have been bound to the RMI registry.
RegistryDiscoveryService(java.rmi.registry.Registry registry)
          Constructs a discovery service which may be used to locate foundation services which have been bound to the RMI registry.
 
Method Summary
 void destroy()
          Destroys this discovery service.
 RemoteServiceInterface findService(ServiceTemplate serviceTemplate)
          Finds a service using a discovery mechanism.
 Services findServices(ServiceTemplate serviceTemplate, int maxNumMatches, Services services)
          Finds a collection of services via a discovery mechanism.
 RemoteServiceInterface findServiceUsingId(java.lang.String runtimeServiceId)
          Re-acquires a previously discovered service via its service discovery ID.
 java.lang.String getEntityKey()
          
 boolean sameEntity(com.sas.entities.EntityKeyInterface entity)
          
 void setEntityKey(java.lang.String key)
          
 void setRegistry(java.rmi.registry.Registry registry)
          Sets the RMI registry from which foundation services may be looked up.
 

Constructor Detail

RegistryDiscoveryService

public RegistryDiscoveryService()
Constructs a discovery service which may be used to locate foundation services which have been bound to the RMI registry.

Use this constructor if you want to specify the registry by calling setRegistry(Registry).


RegistryDiscoveryService

public RegistryDiscoveryService(java.rmi.registry.Registry registry)
Constructs a discovery service which may be used to locate foundation services which have been bound to the RMI registry.

Parameters:
registry - RMI registry. A non-null registry must be specified.
Method Detail

setRegistry

public void setRegistry(java.rmi.registry.Registry registry)
Sets the RMI registry from which foundation services may be looked up.

Parameters:
registry - RMI registry. A null may be specified to clear the registry.

destroy

public void destroy()
Destroys this discovery service.


findService

public RemoteServiceInterface findService(ServiceTemplate serviceTemplate)
                                   throws java.rmi.RemoteException,
                                          ServiceException,
                                          ServiceNotAvailableException
Finds a service using a discovery mechanism.

To be considered a successful match, the service must satisfy the requested service template which may be used to specify:

Specified by:
findService in interface FindServiceInterface
Parameters:
serviceTemplate - Service capability template that specifies the desired class(es) that define a service. The template may also specify criteria to provide additional filtering.
Returns:
RemoteServiceInterface implementation that satisfies the requested service template. Note that RemoteServiceInterface is the base interface implemented by all services.
Throws:
java.rmi.RemoteException - if a network anomaly is encountered.
ServiceException - if an unanticipated exception occurs while processing the discovery.
ServiceNotAvailableException - if no service satisfies the requested service template. Note that ServiceNotAvailableException extends ServiceException.
See Also:
ServiceTemplate

findServiceUsingId

public RemoteServiceInterface findServiceUsingId(java.lang.String runtimeServiceId)
                                          throws java.rmi.RemoteException,
                                                 ServiceException,
                                                 ServiceNotAvailableException
Re-acquires a previously discovered service via its service discovery ID. The service discovery ID is runtime ID that is unique across JVMs and only used in the context of discovering a service.

Specified by:
findServiceUsingId in interface FindServiceInterface
Parameters:
runtimeServiceId - Service's discovery ID.
Returns:
RemoteServiceInterface implementation that satisfies the discovery parameters. Note that RemoteServiceInterface is the base interface implemented by all services.
Throws:
java.rmi.RemoteException - if a network anomaly is encountered.
ServiceException - if an unanticipated exception occurs while processing the discovery. Note that ServiceNotAvailableException extends ServiceException.
ServiceNotAvailableException - if no service satisfies the requested service template.

findServices

public Services findServices(ServiceTemplate serviceTemplate,
                             int maxNumMatches,
                             Services services)
                      throws java.rmi.RemoteException,
                             ServiceException,
                             ServiceNotAvailableException
Finds a collection of services via a discovery mechanism. This overloaded method enables one to specify a collection that may contain services that have already been discovered and to which additional matches should be added.

To be considered a successful match, the service must satisfy the requested service template which may be used to specify:

The current implementation requires one to specify a service type. If you want to find any service use a service type of com.sas.services.RemoteServiceInterface which is implemented by all services.

Specified by:
findServices in interface FindServiceInterface
Parameters:
serviceTemplate - Service capability template that specifies either the desired class(es) that define a services. The service template may also specify additional criteria to provide additional filtering.
maxNumMatches - The maximum number of services that are desired. Value should be greater than or equal to one.
services - Collection of services satisfying the specified service capabilities or null if there are no previously discovered services.
Returns:
A collection containing search results. Each collection element will either be, implement, or extend the requested class(es).
Throws:
java.rmi.RemoteException - if a network anomaly is encountered.
ServiceException - if an unanticipated exception occurs while processing the discovery.
ServiceNotAvailableException - if no service satisfies the requested service template. Note that ServiceNotAvailableException extends ServiceException.
See Also:
ServiceTemplate, Services

getEntityKey

public java.lang.String getEntityKey()
                              throws java.rmi.RemoteException

Specified by:
getEntityKey in interface com.sas.entities.EntityKeyInterface
Throws:
java.rmi.RemoteException

sameEntity

public boolean sameEntity(com.sas.entities.EntityKeyInterface entity)
                   throws java.rmi.RemoteException

Specified by:
sameEntity in interface com.sas.entities.EntityKeyInterface
Throws:
java.rmi.RemoteException

setEntityKey

public void setEntityKey(java.lang.String key)
                  throws java.rmi.RemoteException,
                         java.lang.IllegalStateException

Specified by:
setEntityKey in interface com.sas.entities.EntityKeyInterface
Throws:
java.rmi.RemoteException
java.lang.IllegalStateException

***  This class provides Binary Compatibility only, not Source Compatibility  ***




Copyright © 2009 SAS Institute Inc. All Rights Reserved.