##
##  Licensed to the Apache Software Foundation (ASF) under one
##  or more contributor license agreements.  See the NOTICE file
##  distributed with this work for additional information
##  regarding copyright ownership.  The ASF licenses this file
##  to you under the Apache License, Version 2.0 (the
##  "License"); you may not use this file except in compliance
##  with the License.  You may obtain a copy of the License at
##
##   http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing,
##  software distributed under the License is distributed on an
##   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
##  KIND, either express or implied.  See the License for the
##  specific language governing permissions and limitations
##  under the License.
#############################################################################
## Global Synapse Configuration
#############################################################################
# Synapse Thread pool used for executor service (async executions/mediations)
#synapse.threads.core = 20
#synapse.threads.max = 100
#synapse.threads.keepalive = 5
#synapse.threads.qlen = 10
#synapse.threads.group = synapse-thread-group
#synapse.threads.idprefix = SynapseWorker
#
#synapse.statistics.state=enable
#
# Handling of temporary data (streaming to temp files if buffer exceeds).
# The default chunkSize is 1024, and the default chunk threshold is 8 --> 8kb
# To keep more or less data in memory, those settings can be tuned
# Example to keep 1 MB in memory:
#synapse.temp_data.chunk.threshold=1024
#synapse.temp_data.chunk.size=1024
#
# Register any Synapse observers here
# Specify multiple observer implementation as a comma separated list
#synapse.observers=samples.userguide.SimpleLoggingObserver
#
#############################################################################
# Security Configuration
#############################################################################
# The following property specifies a global password provider implementation
# which will be used globally if not overridden in specific configurations
# synapse.passwordProvider=<any implementation of org.apache.synapse.securevault.secret.SecretCallbackHandler>
#Examples:
#synapse.passwordProvider=org.apache.synapse.securevault.secret.handler.SecretManagerSecretCallbackHandler
#synapse.passwordProvider=org.apache.synapse.securevault.secret.handler.JMXSecretCallbackHandler
#synapse.passwordProvider=org.apache.synapse.securevault.secret.handler.JlineSecretCallbackHandler
#synapse.passwordProvider=org.apache.synapse.securevault.secret.handler.JBossEncryptionSecretCallbackHandler

#synapse.protectedTokens=
#
#secretRepositories=file
#secretRepositories.file.provider=org.apache.synapse.securevault.secret.repository.FileBaseSecretRepositoryProvider
#secretRepositories.file.location=cipher-text.properties
#
#keystore.identity.location=lib/identity.jks
#keystore.identity.type=JKS
#keystore.identity.alias=synapse
#keystore.identity.store.password=password
#keystore.identity.store.passwordProvider=<any implementation of org.apache.synapse.securevault.secret.SecretCallbackHandler>
#keystore.identity.key.password=password
#keystore.identity.key.passwordProvider=<any implementation of org.apache.synapse.securevault.secret.SecretCallbackHandler>
##keystore.identity.parameters=enableHostnameVerifier=false;keyStoreCertificateFilePath=/home/esb.cer
#
#keystore.trust.location=lib/trust.jks
#keystore.trust.type=JKS
#keystore.trust.alias=synapse
#keystore.trust.store.password=password
#keystore.trust.store.passwordProvider=<any implementation of org.apache.synapse.securevault.secret.SecretCallbackHandler>
#
################################################################################
# DataSources Configuration
################################################################################
#synapse.datasources=lookupds,reportds
#synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory
#synapse.datasources.providerPort=2199
# If following property is present , then assumes that there is an external JNDI provider and will not start a RMI registry
#synapse.datasources.providerUrl=rmi://localhost:2199
#
#synapse.datasources.lookupds.registry=Memory
#synapse.datasources.lookupds.type=BasicDataSource
#synapse.datasources.lookupds.driverClassName=org.apache.derby.jdbc.ClientDriver
#synapse.datasources.lookupds.url=jdbc:derby://localhost:1527/lookupdb;create=false
# Optionally you can specify a specific password provider implementation which overrides any globally configured provider
#synapse.datasources.lookupds.passwordProvider=org.apache.synapse.securevault.secret.handler.JBossEncryptionSecretCallbackHandler
#synapse.datasources.lookupds.username=synapse
# Depending on the password provider used, you may have to use an encrypted password here!
#synapse.datasources.lookupds.password=synapse
#synapse.datasources.lookupds.dsName=lookupdb
#synapse.datasources.lookupds.maxActive=100
#synapse.datasources.lookupds.maxIdle=20
#synapse.datasources.lookupds.maxWait=10000
#
#synapse.datasources.reportds.registry=JNDI
#synapse.datasources.reportds.type=PerUserPoolDataSource
#synapse.datasources.reportds.cpdsadapter.factory=org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS
#synapse.datasources.reportds.cpdsadapter.className=org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS
#synapse.datasources.reportds.cpdsadapter.name=cpds
#synapse.datasources.reportds.dsName=reportdb
#synapse.datasources.reportds.driverClassName=org.apache.derby.jdbc.ClientDriver
#synapse.datasources.reportds.url=jdbc:derby://localhost:1527/reportdb;create=false
# Optionally you can specify a specific password provider implementation which overrides any globally configured provider
#synapse.datasources.reportds.passwordProvider=org.apache.synapse.securevault.secret.handler.JBossEncryptionSecretCallbackHandler
#synapse.datasources.reportds.username=synapse
# Depending on the password provider used, you may have to use an encrypted password here!
#synapse.datasources.reportds.password=synapse
#synapse.datasources.reportds.maxActive=100
#synapse.datasources.reportds.maxIdle=20
#synapse.datasources.reportds.maxWait=10000
#
################################################################################
# JMX Configuration
################################################################################
# Default is to autodetect free port starting at 1099; change it to meet your deployment requirements!
synapse.jmx.jndiPort=0
# By default rmi port will be detected automatically, change it to a fixed port to meet your deployment requirements
#synapse.jmx.rmiPort=1101
# By default the hostname will be detected, but you can force to use another network interface
#synapse.jmx.hostname=
# Optionally you can specify a specific secret provider implementation which overrides any globally configured provider
#synapse.jmx.passwordProvider=org.apache.synapse.securevault.secret.handler.JBossEncryptionSecretCallbackHandler
# By default no authentication is required, but you may enforce this by specifying a username and password
#synapse.jmx.username=admin
# Depending on the secret provider used, you may have to use an encrypted password here!
#synapse.jmx.password=admin
# Optionally you may want to specify the location of an remote access file to restrict access
#synapse.jmx.remote.access.file=

#################################################################################################
# Proxy Settings For URL Connections, these are used when synapse retrieves resources from URLs
# i.e. Creating proxy services from WSDL URLs, endpoints using WSDL urls etc.
#################################################################################################
# Proxy server
#synapse.http.proxy.host=
# Proxy server port
#synapse.http.proxy.port=
# Proxy server user name, this is used for HTTP basic authentication
#synapse.http.proxy.user=
# Proxy server user password, this is used for HTTP basic authentication
#synapse.http.proxy.password=
#list of host address excluded from going through the proxy, list is comma separated
#synapse.http.proxy.excluded.hosts=localhost, 127.0.0.1

# Register any UserDefinedWSDLResolver/UserDefinedXmlSchemaURIResolver
# synapse.wsdl.resolver=samples.userguide.UserDefinedWSDLResolver
# synapse.schema.resolver=samples.userguide.UserDefinedXmlSchemaURIResolver

