#
## AristaFlow configuration for clients
#
# To be able to overwrite the configuration you need to copy this file to 
# 'ADEPT2.properties'. Adapt it for your needs. The file will survive any update 
# installation whereas any file with a 'dist'-ending may be updated!
#
# 'docs/configuration.html' is a complete documentation of the configuration of all services,
# components and plugins. Please use this as a reference. Note that the documentation is based on
# the types, that is, usually you will need to use the corresponding instance names as prefix for
# the configuration entries and you will need to consider inheritance, e. g. the configuration of
# the port of the 'netty' communication service is found as 'Port' for
# 'AbstractNettyCommunicationService' in the documentation.
#  

## The name of this instance (node) of the AristaFlow platform.
#This.InstanceName = Client

## The cluster name this instance (node) of the AristaFlow platform is part of. Inter-cluster
## communication is prevented, so set this name appropriately for all nodes of a cluster.  
#ConfigurationManager.confVar.ClusterName = AristaFlow

## The global registry allows to connect to all services of an AristaFlow cluster without knowing
## the concrete URI. Only the URI of the global registry has to be provided. This URI is printed on
## console at the AristaFlow platform instance which starts the global registry (usually the
## singleton server).
## See Communication below for the protocol.
#GlobalRegistry.ServiceURI = ${arflow:confVar.MainCommunicationService}://127.0.0.1:47999/GlobalRegistry/GlobalRegistry

### Logging
## Example for adding another logger (named 'client-runtimemanager') to the predefined logger
## 'client-warnings':
#Logging.Instances.FileLogger = client-warnings, client-runtimemanager
#Logging.client-runtimemanager.Root = de.aristaflow.adept2.core.runtimemanager
#Logging.client-runtimemanager.Level = FINE
#Logging.client-runtimemanager.Filter.Root = de.aristaflow.adept2.core.runtimemanager.defaultimplementation
###

### Data Source
## Example for a PostgreSQL data source:
#Instances.JDBCDataSource = EventDBDataSource
#EventDBDataSource.Implementation = de.aristaflow.adept2.base.dbaccess.defaultimplementation.PoolingJDBCDataSource
#EventDBDataSource.Driver = org.postgresql.Driver
#EventDBDataSource.DBAccessProvider = de.aristaflow.adept2.base.dbaccess.providers.PostgreSQLAccessProvider
#EventDBDataSource.ConnectionURL = jdbc:postgresql://postgresserver.db.url:5432/DBNAME
#EventDBDataSource.UserName = USERNAME
## Use 'bin/encryptPassword.bat' or 'bin/encryptPassword.sh' to encrypt the password.
#EventDBDataSource.Password = PASSWORD
###

### Communication
## If a different communication should be used, e. g. with SSL encryption, the communication must be
## reconfigured. Different protocols may be required at the same time, depending on the remote peers.
## Usually you only need the main protocol which can be set globally for this instance (node) of the
## AristaFlow platform.
#ConfigurationManager.confVar.MainCommunicationService = nettyc
##
## The following communication protocols exist, all in a variant using Java serialisation and one
## using XStream (append '-xs', e. g. 'netty-xs'):
## - netty: communication using Netty, opening a (server) port on client side for callbacks.
## - nettys: netty  with SSL
## - nettyc: one-connection communication, the client will connect to the server; this connection
##           will be used for callbacks, no port will be opened on client side
## - nettycs: nettyc with SSL
##
### All of the following useful configuration values (you may need to change the protocol):
## The port opened for the communication service. 0 chooses a free port randomly (not useful for a
## server).
#netty.Port = 50001
##
## The address of the network device on which to listen to incoming requests. If this is not set,
## the default network device of the machine will be used. Use 0.0.0.0 to listen on all network
## devices. In this case an ExternalHost must be configured!
#netty.Host = 127.0.0.1
##
## The address with which the host can be reached from the outside. This is only required if it
## listens on all network devices or the address of the configured network device can only be
## reached via a different address, e. g. when used behind a NAT boundary.
#netty.ExternalHost = 
##
## The timeout in ms to wait for the remote peer/server to respond to a request from this host.
#netty.ClientTimeout = 60000
##
### The SSL protocols have the following useful configuration values (you may need to change the 
### protocol):
## The path to the keystore file:
#nettys.KeystorePath = ${arflow:arflow.datadir}
##
## The name of the keystore file:
#nettys.KeystoreFile = cert.jks
##
## The password of the keystore file. The default is 'adept2'.
## Use 'bin/encryptPassword.bat' or 'bin/encryptPassword.sh' to encrypt the password.
#nettys.KeystorePass = 0HoviMg4O3eeKW5kfmLJaI3x8vGG+bzEsjKRdYsIIoY7+8NsB+Dn2BjMhDvkhpOv9pHWuNtiKpOxK\
#  Kmv9QjvRA+/jdCMZx6ebnZQNECdTiI6DuvyzuAYaZVPx3XefQS4J4lu60BlRg7ftxYr4FuMGwvEEqOOEacL8JOFXXV8IibJd\
#  eoS4elqiz5pOKwr2N04Z68BSYc27qTHsopzRA93beNuxEipZ2F/mB/bSe5ZFGQMYvxx6p57GyaE2o6hj/0j/GgUHJtKEWrYU\
#  u99lqxvax7Ym0LFnRjJzU8Z/cIQgh22pgYmSYweKKWAmKyrVrW4ypGwlin1ZSEGaB97cxCd5Q\=\=
###

### Remote HTML Execution
## To execute HTML-components on a remote machine, declare the service 'RemoteHTMLRuntimeManager' on
## the remote machine (for instance on the Automatic Client) and uncomment the following lines by
## removing the first character.
## Using the special runtime manager for HTML GUI context
## Make sure that the GUI manager of this runtime manager returns TransferrableGUIContext for the
## configured context IDs!
#ClientService.RemoteRuntimeManagerInstance.GUIContextID.HTMLContext = RemoteHTMLRuntimeManager
## We need a central activity state listener for the remote execution
#ActivityStateListener.Implementation = de.aristaflow.adept2.core.runtimemanager.commonimplementation.DefaultActivityStateListener
#ActivityStateListener.ExportVia = ${arflow:confVar.MainExportService}
###

### Cluster
## To be able to connect to a cluster, the client needs to know the URIs of the 
## GlobalRegistry for the cluster nodes. Those are provided via a GlobalRegistryProvider:
#Components.GlobalRegistryProvider = de.aristaflow.adept2.base.globalregistry.GlobalRegistryProvider
##
## Per default we support two different providers.
## 1. The cluster node URIs are provided in the configuration:
#GlobalRegistryProvider.Implementation = de.aristaflow.adept2.base.cluster.RegistryProviderConf
#GlobalRegistryProvider.GlobalRegistryUris = \
#  ${arflow:confVar.MainCommunicationService}://127.0.0.1:47999/GlobalRegistry/GlobalRegistry, \
#  ${arflow:confVar.MainCommunicationService}://host.name:37999/GlobalRegistry/GlobalRegistry, \
#  ${arflow:confVar.MainCommunicationService}://third.one:12345/GlobalRegistry/GlobalRegistry
## 
## 2. The cluster node URIs are provided in the database:
#GlobalRegistryProvider.Implementation = de.aristaflow.adept2.base.cluster.RegistryProviderDb
#GlobalRegistryProvider.ClusterName = ${arflow:confVar.ClusterName}
## This provider needs access to the same database the cluster nodes use, therefore a data source
## has to be configured accordingly. See section 'Data Source' for details. If this data source is
## not the first in the list of data source instances, you have to configure it specifically:
#GlobalRegistryProvider.JDBCDataSource = EventDBDataSource
###

### Termination
## Debugging termination problems: perform a thread dump every nn configured seconds.
## 0 disables thread dumps.
#TerminationThreadDumpIntervalSeconds = 0
## Ensure the termination of the Application by trying to directly exit the Java VM (System.exit).
## USE THIS OPTION CAREFULLY! Unclean shutdowns may cause lost of data!
## 0 disables System.exit().
#TerminationSystemExitSeconds = 0
###
