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

Package com.sas.services.deployment

# Class CorePlatformServices

java.lang.Object
com.sas.services.deployment.CorePlatformServices

@SASScope("ALL") @BinaryCompatibilityOnly public class CorePlatformServices extends Object
Facades a deployment of core foundation services.

The core foundation services include:

- Authentication
- Discovery
- Information
- Session
- User

Note that this class provides static methods to control the services facade. Since this class is a convenience wrapper to the `PlatformServices` facade which likewise only provides static methods. `PlatformServices` provides the service startup/termination and general service finder capabilities. One would typically use either this class or `PlatformServices` as their facade.

Since:
  1.1

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CorePlatformServices()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `addContentServerRepository(UserContextInterface user)`
  Adds a repository definition to the running information service.
  `static final void`
  `addServicesDeploymentListener(ServicesDeploymentEventListenerInterface listener)`
  Adds a services deployment listener which is interested in being notified of deployment state transitions.
  `static AuthenticationServiceInterface`
  `getAuthenticationService()`
  Gets the authentication service.
  `static DiscoveryServiceInterface`
  `getDiscoveryService()`
  Gets the discovery service.
  `static InformationServiceInterface`
  `getInformationService()`
  Gets the information service.
  `static final Services`
  `getServices()`
  Gets all available services.
  `static SessionServiceInterface`
  `getSessionService()`
  Gets the session service.
  `static UserServiceInterface`
  `getUserService()`
  Gets the user service.
  `static void`
  `lookupRemoteServices()`
  Locates any services defined for remote lookup by delegating the request to the `PlatformServices.lookupRemoteServices()` and then re-initializing handles to core platform services abstracted by this class.
  `static final void`
  `removeServicesDeploymentListener(ServicesDeploymentEventListenerInterface listener)`
  Removes a services deployment listener which is no longer interested in being notified of deployment state transitions.
  `static void`
  `setDefaultServicesConfigurationWithMinimumLogging()`
  Specifies the default SAS Foundation Services configuration with no LoggingService configuration.
  `static final void`
  `setEnvironment(Environment environment)`
  Specified the environment resources to be used by this facade.
  `static final boolean`
  `setJAASAppConfigurationEntry(AppConfigurationEntry[] appConfigurationEntries)`
  Updates this resource environment to use the specified JAAS `entries`.
  `static final void`
  `setServicesConfiguration(PlatformServicesConfiguration servicesConfiguration)`
  Specifies the services configuration that is to be used by this facade.
  `static SessionContextInterface`
  `startAndConnect(String clientApplication, ConnectionProfile connectionProfile)`
  `static void`
  `startLocalServices()`
  Starts any services defined for local instantiation by delegating the request to the `PlatformServices.startLocalServices()` and then re-initializing handles to core platform services abstracted by this class.
  `static void`
  `startServices()`
  Starts/looks up services by delegating the request to the `PlatformServices.startServices()` and then re-initializing handles to core platform services abstracted by this class.
  `static void`
  `terminateServices()`
  Terminates services by null'ing references to the core services and then delegating the service termination request to the `PlatformServices` facade.
  `static void`
  `validateServices()`
  Verify that the core services are available.

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CorePlatformServices

    public CorePlatformServices()

- ## Method Details

  - ### setServicesConfiguration

    public static final void setServicesConfiguration(PlatformServicesConfiguration servicesConfiguration) throws ServiceException
    Specifies the services configuration that is to be used by this facade.
    Parameters:
      `servicesConfiguration` - The service configuration that is to be deployed. This configuration details the metadata source(s) describing service deployment(s).
    Throws:
      `ServiceException` - if an invalid configuration is specified.

  - ### setEnvironment

    public static final void setEnvironment(Environment environment)
    Specified the environment resources to be used by this facade.
    Parameters:
      `environment` - The environment resources that are to be used by the deployed services.

  - ### setJAASAppConfigurationEntry

    public static final boolean setJAASAppConfigurationEntry(AppConfigurationEntry[] appConfigurationEntries) throws ServiceException
    Updates this resource environment to use the specified JAAS `entries`.

    This method is a pass through method to `PlatformServices.setJAASAppConfigurationEntry(AppConfigurationEntry[])`. Refer to its javadoc for additional details.

    Parameters:
      `appConfigurationEntries` - Array of JAAS application configuration `entries` which the should be set in the resource environment.
    Returns:
      `true` if the resource `environment` was updated or `false` if a resource environment is not defined.
    Throws:
      `ServiceException` - if an exception is encountered.

  - ### startServices

    public static void startServices() throws ServiceException, ServiceLookupFailedException
    Starts/looks up services by delegating the request to the `PlatformServices.startServices()` and then re-initializing handles to core platform services abstracted by this class.
    Throws:
      `ServiceException` - if unable to instantiate services.
      `ServiceLookupFailedException` - if an exception was encountered looking up remote services.

  - ### startLocalServices

    public static void startLocalServices() throws ServiceException
    Starts any services defined for local instantiation by delegating the request to the `PlatformServices.startLocalServices()` and then re-initializing handles to core platform services abstracted by this class.
    Throws:
      `ServiceException`

  - ### lookupRemoteServices

    public static void lookupRemoteServices() throws ServiceException, ServiceLookupFailedException
    Locates any services defined for remote lookup by delegating the request to the `PlatformServices.lookupRemoteServices()` and then re-initializing handles to core platform services abstracted by this class.
    Throws:
      `ServiceException`
      `ServiceLookupFailedException`

  - ### terminateServices

    public static void terminateServices() throws ServiceException
    Terminates services by null'ing references to the core services and then delegating the service termination request to the `PlatformServices` facade.
    Throws:
      `ServiceException` - if unable to terminate services cleanly.

  - ### getDiscoveryService

    public static DiscoveryServiceInterface getDiscoveryService()
    Gets the discovery service.
    Returns:
      Discovery service or `null` if a service is not available.

  - ### getInformationService

    public static InformationServiceInterface getInformationService()
    Gets the information service.
    Returns:
      Information service or `null` if an information service is not available.

  - ### getSessionService

    public static SessionServiceInterface getSessionService()
    Gets the session service.
    Returns:
      Session service or `null` if a session service is not available.

  - ### getUserService

    public static UserServiceInterface getUserService()
    Gets the user service.
    Returns:
      User service or `null` if a user service is not available.

  - ### getAuthenticationService

    public static AuthenticationServiceInterface getAuthenticationService()
    Gets the authentication service.
    Returns:
      Authentication service or `null` if an authentication service is not available.

  - ### addServicesDeploymentListener

    public static final void addServicesDeploymentListener(ServicesDeploymentEventListenerInterface listener) throws ServiceException
    Adds a services deployment listener which is interested in being notified of deployment state transitions.

    Note that this method just delegates to {#link PlatformServices. addServicesDeploymentListener (ServicesDeploymentListenerInterface)}

    Parameters:
      `listener` - Services deployment listener interested in being notified of deployment state changes.
    Throws:
      `ServiceException` - if unable to add the listener.

  - ### removeServicesDeploymentListener

    public static final void removeServicesDeploymentListener(ServicesDeploymentEventListenerInterface listener)
    Removes a services deployment listener which is no longer interested in being notified of deployment state transitions.

    Note that this method just delegates to {#link PlatformServices. removeServicesDeploymentListener (ServicesDeploymentListenerInterface)}

    Parameters:
      `listener` - Services deployment listener to be removed.

  - ### getServices

    public static final Services getServices() throws ServiceException
    Gets all available services.
    Returns:
      Foundation services that are available to this facade. Each service in the collection will implement `RemoteServiceInterface`.
    Throws:
      `ServiceException` - if unable to determine available services.

  - ### validateServices

    public static void validateServices() throws ServiceException
    Verify that the core services are available.
    - Authentication
    - Information
    - Session
    - User
    Throws:
      `ServiceException` - if a service is not available.

  - ### setDefaultServicesConfigurationWithMinimumLogging

    public static void setDefaultServicesConfigurationWithMinimumLogging() throws ServiceException
    Specifies the default SAS Foundation Services configuration with no LoggingService configuration.
    Throws:
      `ServiceException` - if unable to set the default configuration.

  - ### addContentServerRepository

    public static boolean addContentServerRepository(UserContextInterface user) throws ServiceException
    Adds a repository definition to the running information service. Must be called after the services are started.
    Parameters:
      `user` - user context used to connect to the server and find the repository definition
    Returns:
      true if repository definition was found and added
    Throws:
      `ServiceException`
      `IllegalStateException` - if services are not started

  - ### startAndConnect

    public static SessionContextInterface startAndConnect(String clientApplication, ConnectionProfile connectionProfile) throws ServiceException
    Throws:
      `ServiceException`