|
Platform SDK Java 8.5 API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.genesyslab.platform.apptemplate.configuration.ClientConfigurationHelper
public class ClientConfigurationHelper
Helper class for client connection configuration creation.
It createsEndpoint
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();
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 |
---|
public ClientConfigurationHelper()
Method Detail |
---|
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 connection
ConfigurationException
- 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 connection
ConfigurationException
- 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 connection
ConfigurationException
- 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 server
ConfigurationException
- 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 configuration
ConfigurationException
- 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 endpoint
ConfigurationException
- 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 name
ConfigurationException
- if provided configuration properties are wrong or insufficient
|
Platform SDK Java 8.5 API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |