Platform SDK Java 8.5 API Reference

com.genesyslab.platform.apptemplate.configuration
Class ClientConfigurationHelper

java.lang.Object
  extended by com.genesyslab.platform.apptemplate.configuration.ClientConfigurationHelper

public class ClientConfigurationHelper
extends java.lang.Object

Helper class for client connection configuration creation.

It creates Endpoint with initialized client connection configuration based on IGApplicationConfiguration interface information.

Also it may create WarmStandbyConfiguration representing configuration for WarmStandbyService including pair of connection endpoints - primary and backup (as it is specified in the provided configuration).

COM AB usage example:

   String appName = "<my-app-name>";
   CfgApplication cfgApplication = confService.retrieveObject(
           CfgApplication.class, new CfgApplicationQuery(appName));

   GCOMApplicationConfiguration appConfiguration =
           new GCOMApplicationConfiguration(cfgApplication);

   IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGStatServer);

   Endpoint epStatSrv = ClientConfigurationHelper.createEndpoint(
               appConfiguration, connConfig,
               connConfig.getTargetServerConfiguration());

   StatServerProtocol statProtocol = new StatServerProtocol(epStatSrv);
   statProtocol.setClientName(clientName);

   statProtocol.open();
 

See Also:
IGApplicationConfiguration, GApplicationConfiguration, GCOMApplicationConfiguration

Constructor Summary
ClientConfigurationHelper()
           
 
Method Summary
static Endpoint createEndpoint(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetServerConfig)
          It creates configured Endpoint instance with attached connection configuration using IGApplicationConfiguration structures.
static Endpoint createEndpoint(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetServerConfig, boolean tlsEnabled, javax.net.ssl.SSLContext sslContext, SSLExtendedOptions sslOptions)
          It creates configured Endpoint instance with attached connection configuration using IGApplicationConfiguration structures.
static Endpoint createEndpoint(java.lang.String endpointName, IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetServerConfig, boolean tlsEnabled, javax.net.ssl.SSLContext sslContext, SSLExtendedOptions sslOptions)
          It creates configured Endpoint instance with attached connection configuration using IGApplicationConfiguration structures.
static WarmStandbyConfiguration createWarmStandbyConfig(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig)
          Creates configuration for WarmStandbyService.
static WarmStandbyConfiguration createWarmStandbyConfig(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, boolean primaryTLSEnabled, javax.net.ssl.SSLContext primarySSLContext, SSLExtendedOptions primarySSLOptions, boolean backupTLSEnabled, javax.net.ssl.SSLContext backupSSLContext, SSLExtendedOptions backupSSLOptions)
          Creates configuration for WarmStandbyService.
static WSConfig createWarmStandbyConfigEx(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig)
          Creates configuration for new implementation of the warm standby: WarmStandby.
static WSConfig createWarmStandbyConfigEx(java.lang.String wsconfigName, IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetPrimary)
          Creates configuration for new implementation of the warm standby: WarmStandby.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClientConfigurationHelper

public ClientConfigurationHelper()
Method Detail

createWarmStandbyConfig

public static WarmStandbyConfiguration createWarmStandbyConfig(IGApplicationConfiguration appConfig,
                                                               IGApplicationConfiguration.IGAppConnConfiguration connConfig)
                                                        throws ConfigurationException
Creates configuration for WarmStandbyService. Its' result includes parameters for connection to primary and backup servers defined in the specified application configuration information.
TLS configuration WarmStandbyService may be used for automatic connection restoration to primary or backup server when it's got lost.

Method usage example:

   String appName = "<my-app-name>";
   CfgApplication cfgApplication = confService.retrieveObject(
           CfgApplication.class, new CfgApplicationQuery(appName));

   GCOMApplicationConfiguration appConfiguration =
           new GCOMApplicationConfiguration(cfgApplication);

   IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGStatServer);

   WarmStandbyConfiguration wsConfig =
           ClientConfigurationHelper.createWarmStandbyConfig(
                   appConfiguration, connConfig);

   StatServerProtocol statProtocol = new StatServerProtocol(wsConfig.getActiveEndpoint());
   statProtocol.setClientName(clientName);

   WarmStandbyService wsService = new WarmStandbyService(statProtocol);
   wsService.applyConfiguration(wsConfig);
   wsService.start();
   statProtocol.beginOpen();
 
Note: This sample contains initialization logic only without proper components dispose functionality.
Do not forget to keep reference to the WarmStandbyService instance and to perform its dispose when it is not needed any more.

Parameters:
appConfig - main application configuration
connConfig - configuration of particular application connection
Returns:
WarmStandbyConfiguration instance with connection configurations to primary and backup servers' endpoints
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

createWarmStandbyConfig

public static WarmStandbyConfiguration createWarmStandbyConfig(IGApplicationConfiguration appConfig,
                                                               IGApplicationConfiguration.IGAppConnConfiguration connConfig,
                                                               boolean primaryTLSEnabled,
                                                               javax.net.ssl.SSLContext primarySSLContext,
                                                               SSLExtendedOptions primarySSLOptions,
                                                               boolean backupTLSEnabled,
                                                               javax.net.ssl.SSLContext backupSSLContext,
                                                               SSLExtendedOptions backupSSLOptions)
                                                        throws ConfigurationException
Creates configuration for WarmStandbyService. Its' result includes parameters for connection to primary and backup servers defined in the specified application configuration information.

WarmStandbyService may be used for automatic connection restoration to primary or backup server when it's got lost.

It is typical and highly recommended for primary and backup servers to have identical configuration, but TLS can be configured separately for primary and backup. Reason to do it is that TLS certificates can contain server host name as an additional security measure and host names will be different for primary and backup servers.

Method usage example:

   String appName = "<my-app-name>";
   CfgApplication cfgApplication = confService.retrieveObject(
           CfgApplication.class, new CfgApplicationQuery(appName));

   GCOMApplicationConfiguration appConfiguration =
           new GCOMApplicationConfiguration(cfgApplication);

   IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGStatServer);

   // TLS preparation section follows
   final ITLSConnectionConfiguration tlsConfiguration = new TLSConnectionConfiguration();
   TLSConfigurationParser.parseClientTLSConfiguration(appConfiguration, connConfig, tlsConfiguration);

   final IGApplicationConfiguration.IGServerInfo primaryServer =
           connConfig.getTargetServerConfiguration().getServerInfo();
   final IGApplicationConfiguration.IGServerInfo backupServer =
           primaryServer.getBackup().getServerInfo();

   // Configure TLS for Primary
   tlsConfiguration.setExpectedHostname(primaryServer.getHost().getName());
   final SSLContext primarySSLContext = TLSConfigurationHelper.createSSLContext(tlsConfiguration);
   final SSLExtendedOptions primarySSLOptions = TLSConfigurationHelper.createSSLExtendedOptions(tlsConfiguration);
   final boolean primaryTLSEnabled = true;

   // Configure TLS for Backup
   tlsConfiguration.setExpectedHostname(backupServer.getHost().getName());
   final SSLContext backupSSLContext = TLSConfigurationHelper.createSSLContext(tlsConfiguration);
   final SSLExtendedOptions backupSSLOptions = TLSConfigurationHelper.createSSLExtendedOptions(tlsConfiguration);
   final boolean backupTLSEnabled = true;
   // TLS preparation section ends

   WarmStandbyConfiguration wsConfig = ClientConfigurationHelper.createWarmStandbyConfig(
           appConfiguration, connConfig,
           primaryTLSEnabled, primarySSLContext, primarySSLOptions,
           backupTLSEnabled, backupSSLContext, backupSSLOptions);

   StatServerProtocol statProtocol = new StatServerProtocol(wsConfig.getActiveEndpoint());
   statProtocol.setClientName(clientName);

   WarmStandbyService wsService = new WarmStandbyService(statProtocol);
   wsService.applyConfiguration(wsConfig);
   wsService.start();
   statProtocol.beginOpen();
 
Note: This sample contains initialization logic only without proper components dispose functionality.
Do not forget to keep reference to the WarmStandbyService instance and to perform its dispose when it is not needed any more.

Parameters:
appConfig - main application configuration
connConfig - configuration of particular application connection
primaryTLSEnabled - "TLS enabled" flag for primary connection
primarySSLContext - TLS configuration for primary connection
primarySSLOptions - TLS extended options for primary connection
backupTLSEnabled - "TLS enabled" flag for backup connection
backupSSLContext - TLS configuration for backup connection
backupSSLOptions - TLS extended options for backup connection
Returns:
WarmStandbyConfiguration instance with connection configurations to primary and backup servers' endpoints
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

createWarmStandbyConfigEx

public static WSConfig createWarmStandbyConfigEx(IGApplicationConfiguration appConfig,
                                                 IGApplicationConfiguration.IGAppConnConfiguration connConfig)
                                          throws ConfigurationException
Creates configuration for new implementation of the warm standby: WarmStandby. Its' result includes parameters for connection to primary and backup servers defined in the specified application configuration information.
If TLS configuration specified in CME, result will also include secure connection context. WarmStandby may be used for automatic connection restoration to primary or backup server when it's got lost.

Method usage example:

   String appName = "<my-app-name>";
   CfgApplication cfgApplication = confService.retrieveObject(
           CfgApplication.class, new CfgApplicationQuery(appName));
 
   GCOMApplicationConfiguration appConfiguration =
           new GCOMApplicationConfiguration(cfgApplication);
 
   IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGStatServer);
 
   WSConfig wsConfig =
           ClientConfigurationHelper.createWarmStandbyConfigEx(
                   appConfiguration, connConfig);
 
   StatServerProtocol statProtocol = new StatServerProtocol();
   statProtocol.setClientName(clientName);
 
   WarmStandby warmStandby = new WarmStandby(statProtocol);
   warmStandby.setConfig(wsConfig);
   warmStandby.autoRestore();
 
Note: This sample contains initialization logic only without proper components dispose functionality.
Call warmStandby.close() or directly statProtocol.close() to release resources.

Parameters:
appConfig - main application configuration
connConfig - configuration of particular application connection
Returns:
WSConfig instance with connection configurations to primary and backup servers' endpoints
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

createWarmStandbyConfigEx

public static WSConfig createWarmStandbyConfigEx(java.lang.String wsconfigName,
                                                 IGApplicationConfiguration appConfig,
                                                 IGApplicationConfiguration.IGAppConnConfiguration connConfig,
                                                 IGApplicationConfiguration targetPrimary)
                                          throws ConfigurationException
Creates configuration for new implementation of the warm standby: WarmStandby. Its' result includes parameters for connection to primary and backup servers defined in the specified application configuration information.
If TLS configuration specified in CME, result will also include secure connection context. WarmStandby may be used for automatic connection restoration to primary or backup server when it's got lost.

Method usage example:

   String appName = "<my-app-name>";
   CfgApplication cfgApplication = confService.retrieveObject(
           CfgApplication.class, new CfgApplicationQuery(appName));
 
   GCOMApplicationConfiguration appConfiguration =
           new GCOMApplicationConfiguration(cfgApplication);
 
   IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGStatServer);
 
   WSConfig wsConfig =
           ClientConfigurationHelper.createWarmStandbyConfigEx(
                   appConfiguration, connConfig);
 
   StatServerProtocol statProtocol = new StatServerProtocol();
   statProtocol.setClientName(clientName);
 
   WarmStandby warmStandby = new WarmStandby(statProtocol);
   warmStandby.setConfig(wsConfig);
   warmStandby.autoRestore();
 
Note: This sample contains initialization logic only without proper components dispose functionality.
Call warmStandby.close() or directly statProtocol.close() to release resources.

Parameters:
wsconfigName - name of the WarmStandby configura and it's primary Endpoint
appConfig - main application configuration
connConfig - configuration of particular application connection
targetPrimary - application configuration of the primary server
Returns:
WSConfig instance with connection configurations to primary and backup servers' endpoints
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

createEndpoint

public static Endpoint createEndpoint(IGApplicationConfiguration appConfig,
                                      IGApplicationConfiguration.IGAppConnConfiguration connConfig,
                                      IGApplicationConfiguration targetServerConfig)
                               throws ConfigurationException
It creates configured Endpoint instance with attached connection configuration using IGApplicationConfiguration structures.

Example using COM AB:

   String appName = "<my-app-name>";
   CfgApplication cfgApplication = confService.retrieveObject(
           CfgApplication.class, new CfgApplicationQuery(appName));

   GCOMApplicationConfiguration appConfiguration =
           new GCOMApplicationConfiguration(cfgApplication);

   IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGTServer);

   Endpoint epTSrv = ClientConfigurationHelper.createEndpoint(
               appConfiguration, connConfig,
               connConfig.getTargetServerConfiguration());

   TServerProtocol tsProtocol = new TServerProtocol(epTSrv);
   tsProtocol.setClientName(clientName);

   tsProtocol.open();
 

Parameters:
appConfig - main application configuration
connConfig - configuration of particular application connection
targetServerConfig - target server application configuration
Returns:
configured Endpoint containing appropriate connection configuration attached
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

createEndpoint

public static Endpoint createEndpoint(IGApplicationConfiguration appConfig,
                                      IGApplicationConfiguration.IGAppConnConfiguration connConfig,
                                      IGApplicationConfiguration targetServerConfig,
                                      boolean tlsEnabled,
                                      javax.net.ssl.SSLContext sslContext,
                                      SSLExtendedOptions sslOptions)
                               throws ConfigurationException
It creates configured Endpoint instance with attached connection configuration using IGApplicationConfiguration structures. Allows to specify if TLS should be turned on immediately upon connection.

Example using COM AB:

 String appName = "<my-app-name>";
 CfgApplication cfgApplication = confService.retrieveObject(
         CfgApplication.class, new CfgApplicationQuery(appName));

 GCOMApplicationConfiguration appConfiguration =
         new GCOMApplicationConfiguration(cfgApplication);

 IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGTServer);

 // TLS preparation section follows
 final ITLSConnectionConfiguration tlsConfiguration = new TLSConnectionConfiguration();
 TLSConfigurationParser.parseClientTLSConfiguration(appConfiguration, connConfig, tlsConfiguration);

 // TLS customization code goes here...
 // As an example, host name verification is turned on
 final IGApplicationConfiguration.IGServerInfo targetServer =
         connConfig.getTargetServerConfiguration().getServerInfo();
 tlsConfiguration.setExpectedHostname(targetServer.getHost().getName());

 // Get TLS configuration objects for connection
 final SSLContext serverSSLContext = TLSConfigurationHelper.createSSLContext(tlsConfiguration);
 final SSLExtendedOptions serverSSLOptions =
         TLSConfigurationHelper.createSSLExtendedOptions(tlsConfiguration);
 final boolean serverTLSEnabled = true;
 // TLS preparation section ends

 Endpoint epTSrv = ClientConfigurationHelper.createEndpoint(
         appConfiguration, connConfig,
         connConfig.getTargetServerConfiguration(),
         serverTLSEnabled, serverSSLContext, serverSSLOptions);

 TServerProtocol tsProtocol = new TServerProtocol(epTSrv);
 tsProtocol.setClientName(clientName);

 tsProtocol.open();
 

Parameters:
appConfig - main application configuration
connConfig - configuration of particular application connection
targetServerConfig - target server application configuration
tlsEnabled - true - TLS will be turned on immediately upon connection, false - TLS is not turned on immediately but can be turned on by protocol if "TLS Auto-detect" feature is used.
sslContext - SSL configuration for the endpoint
sslOptions - SSL extended options for the endpoint
Returns:
configured Endpoint containing appropriate connection configuration attached
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

createEndpoint

public static Endpoint createEndpoint(java.lang.String endpointName,
                                      IGApplicationConfiguration appConfig,
                                      IGApplicationConfiguration.IGAppConnConfiguration connConfig,
                                      IGApplicationConfiguration targetServerConfig,
                                      boolean tlsEnabled,
                                      javax.net.ssl.SSLContext sslContext,
                                      SSLExtendedOptions sslOptions)
                               throws ConfigurationException
It creates configured Endpoint instance with attached connection configuration using IGApplicationConfiguration structures. Allows to specify if TLS should be turned on immediately upon connection.

Example using COM AB:

 String appName = "<my-app-name>";
 CfgApplication cfgApplication = confService.retrieveObject(
         CfgApplication.class, new CfgApplicationQuery(appName));

 GCOMApplicationConfiguration appConfiguration =
         new GCOMApplicationConfiguration(cfgApplication);

 IGAppConnConfiguration connConfig = appConfiguration.getAppServer(CfgAppType.CFGTServer);

 // TLS preparation section follows
 final ITLSConnectionConfiguration tlsConfiguration = new TLSConnectionConfiguration();
 TLSConfigurationParser.parseClientTLSConfiguration(appConfiguration, connConfig, tlsConfiguration);

 // TLS customization code goes here...
 // As an example, host name verification is turned on
 final IGApplicationConfiguration.IGServerInfo targetServer =
         connConfig.getTargetServerConfiguration().getServerInfo();
 tlsConfiguration.setExpectedHostname(targetServer.getHost().getName());

 // Get TLS configuration objects for connection
 final SSLContext serverSSLContext = TLSConfigurationHelper.createSSLContext(tlsConfiguration);
 final SSLExtendedOptions serverSSLOptions =
         TLSConfigurationHelper.createSSLExtendedOptions(tlsConfiguration);
 final boolean serverTLSEnabled = true;
 // TLS preparation section ends

 Endpoint epTSrv = ClientConfigurationHelper.createEndpoint(
         appConfiguration, connConfig,
         connConfig.getTargetServerConfiguration(),
         serverTLSEnabled, serverSSLContext, serverSSLOptions);

 TServerProtocol tsProtocol = new TServerProtocol(epTSrv);
 tsProtocol.setClientName(clientName);

 tsProtocol.open();
 

Parameters:
appConfig - main application configuration
connConfig - configuration of particular application connection
targetServerConfig - target server application configuration
tlsEnabled - true - TLS will be turned on immediately upon connection, false - TLS is not turned on immediately but can be turned on by protocol if "TLS Auto-detect" feature is used.
sslContext - SSL configuration for the endpoint
sslOptions - SSL extended options for the endpoint
endpointName - endpoint name
Returns:
configured Endpoint containing appropriate connection configuration attached
Throws:
ConfigurationException - if provided configuration properties are wrong or insufficient

Platform SDK Java 8.5 API Reference

Send comments on this topicTechpubs.webadmin@genesys.com.
Document version: 8.5.302.00
Copyright © 2006–2017 Genesys Telecommunications Laboratories, Inc. All rights reserved.