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

Package com.sas.services.deployment

# Class RMIDeployableService

java.lang.Object
com.sas.services.deployment.DeployableService
com.sas.services.deployment.RMIDeployableService

All Implemented Interfaces:
  `DeployInterface`, `Serializable`, `Comparable<DeployableService>`

@SASScope("ALL") @BinaryCompatibilityOnly public class RMIDeployableService extends DeployableService
This is an object that represents a foundation service that can be deployed by the `ServiceLoader` utility. It represents a foundation service which is ultimately defined in terms of an Open Metadata Architecture (OMA) metadata schema.

During the process of querying a metadata source for a foundation service deployment the creation of a `DeployableService` represents a conversion from an OMA metadata representation into an alternative representation that is more suited for use in the foundation service deployment domain.

Since:
  1.0
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RMIDeployableService(String id, ServiceConfigurationInterface serviceConfiguration, String[] dependencies, Set<RMIBinding> rmiBindings, AbstractMetadataSource metadataSource)`
  Constructs an instance that specifies a factory that will be used to instantiate a service and optionally register it with the RMIRegistry.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RemoteServiceInterface`
  `deploy()`
  Deploys an RMI service by either looking up its stub in an RMI registry or instantiating a service and optionally registering it with RMI.
  `RemoteServiceInterface`
  `deploy(DiscoveryServiceInterface discoveryService)`
  Deploys an RMI service by either looking up its stub in an RMI registry or instantiating a service and optionally registering it with RMI.
  `String`
  `toString()`
  Gets a string representation of this instance.

  ### Methods inherited from class com.sas.services.deployment.DeployableService

  `compareTo, equals, getDependencies, getId, getServiceConfiguration, getServiceFactory, hashCode, setDependencies`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### RMIDeployableService

    public RMIDeployableService(String id, ServiceConfigurationInterface serviceConfiguration, String[] dependencies, Set<RMIBinding> rmiBindings, AbstractMetadataSource metadataSource) throws ServiceException
    Constructs an instance that specifies a factory that will be used to instantiate a service and optionally register it with the RMIRegistry.
    Parameters:
      `id` - The service's metadata ID.
      `serviceConfiguration` - The service's configuration that will be provided to the service factory.
      `dependencies` - A set of 0..* service repository IDs upon which this service depends. This service may not be deployed until these other services are deployed. A `null` parameter value indicates that there are no other dependencies.
      `rmiBindings` - Set of RMI name `bindings` associating service to one or more RMI registries.
      `metadataSource` - Metadata source which was used to deploy services. It will be updated with the RMI bindings for any remote discovery services which are deployed.
    Throws:
      `ServiceException` - if unable to construct an instance.

- ## Method Details

  - ### deploy

    public RemoteServiceInterface deploy() throws ServiceException
    Deploys an RMI service by either looking up its stub in an RMI registry or instantiating a service and optionally registering it with RMI.
    Specified by:
      `deploy` in interface `DeployInterface`
    Overrides:
      `deploy` in class `DeployableService`
    Returns:
      Deployed service.
    Throws:
      `ServiceException` - if unable to deploy the service.
    See Also:
      - `DeployInterface.deploy()`

  - ### deploy

    public RemoteServiceInterface deploy(DiscoveryServiceInterface discoveryService) throws ServiceException
    Deploys an RMI service by either looking up its stub in an RMI registry or instantiating a service and optionally registering it with RMI.
    Overrides:
      `deploy` in class `DeployableService`
    Parameters:
      `discoveryService` - The discovery service to which the service should register if it wants to be located by other services or `null` if the deployed service should not be registered.
    Returns:
      Deployed service.
    Throws:
      `ServiceException` - if unable to deploy the service.
    See Also:
      - `DeployInterface.deploy()`

  - ### toString

    public String toString()
    Gets a string representation of this instance.
    Overrides:
      `toString` in class `DeployableService`
    Returns:
      String representation of this instance.