All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Foundation |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

*** 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:

  - class(es) the service is, extends, or implements
  - additional filtering criteria expressed in terms of `ServiceAttributeInterface`

  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:

  - service types: class(es) the service is, extends, or implements
  - additional filtering criteria
  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 ***

All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Foundation |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009 SAS Institute Inc. All Rights Reserved.