public class ClientConfigurationHelper
extends java.lang.Object
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();
Constructor | Description |
---|---|
ClientConfigurationHelper() |
Modifier and Type | Method | Description |
---|---|---|
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 . |
public static WarmStandbyConfiguration createWarmStandbyConfig(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig) throws ConfigurationException
WarmStandbyService
.
Its' result includes parameters for connection to primary and backup servers
defined in the specified application configuration information.
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();
appConfig
- main application configurationconnConfig
- configuration of particular application connectionConfigurationException
- if provided configuration properties are wrong or insufficientpublic 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
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();
Do not forget to keep reference to the WarmStandbyService instance and
to perform its dispose when it is not needed any more.
appConfig
- main application configurationconnConfig
- configuration of particular application connectionprimaryTLSEnabled
- "TLS enabled" flag for primary connectionprimarySSLContext
- TLS configuration for primary connectionprimarySSLOptions
- TLS extended options for primary connectionbackupTLSEnabled
- "TLS enabled" flag for backup connectionbackupSSLContext
- TLS configuration for backup connectionbackupSSLOptions
- TLS extended options for backup connectionConfigurationException
- if provided configuration properties are wrong or insufficientpublic static WSConfig createWarmStandbyConfigEx(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig) throws ConfigurationException
WarmStandby
. Its'
result includes parameters for connection to primary and backup servers
defined in the specified application configuration information.
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();
warmStandby.close()
or directly
statProtocol.close()
to release resources.appConfig
- main application configurationconnConfig
- configuration of particular application connectionConfigurationException
- if provided configuration properties are wrong or insufficientpublic static WSConfig createWarmStandbyConfigEx(java.lang.String wsconfigName, IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetPrimary) throws ConfigurationException
WarmStandby
. Its'
result includes parameters for connection to primary and backup servers
defined in the specified application configuration information.
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();
warmStandby.close()
or directly
statProtocol.close()
to release resources.wsconfigName
- name of the WarmStandby configura and it's primary EndpointappConfig
- main application configurationconnConfig
- configuration of particular application connectiontargetPrimary
- application configuration of the primary serverConfigurationException
- if provided configuration properties are wrong or insufficientpublic static Endpoint createEndpoint(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetServerConfig) throws ConfigurationException
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();
appConfig
- main application configurationconnConfig
- configuration of particular application connectiontargetServerConfig
- target server application configurationConfigurationException
- if provided configuration properties are wrong or insufficientpublic static Endpoint createEndpoint(IGApplicationConfiguration appConfig, IGApplicationConfiguration.IGAppConnConfiguration connConfig, IGApplicationConfiguration targetServerConfig, boolean tlsEnabled, javax.net.ssl.SSLContext sslContext, SSLExtendedOptions sslOptions) throws ConfigurationException
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();
appConfig
- main application configurationconnConfig
- configuration of particular application connectiontargetServerConfig
- target server application configurationtlsEnabled
- 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 endpointsslOptions
- SSL extended options for the endpointConfigurationException
- if provided configuration properties are wrong or insufficientpublic 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
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();
appConfig
- main application configurationconnConfig
- configuration of particular application connectiontargetServerConfig
- target server application configurationtlsEnabled
- 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 endpointsslOptions
- SSL extended options for the endpointendpointName
- endpoint nameConfigurationException
- if provided configuration properties are wrong or insufficientSend comments on this topicTechpubs.webadmin@genesys.com.
Document version: 9.0.006.00
Copyright © 2006–2019 Genesys Telecommunications Laboratories, Inc. All rights reserved.