###
# ============LICENSE_START=======================================================
# ONAP CLAMP
# ================================================================================
# Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
#                             reserved.
# ================================================================================
# Licensed 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.
# ============LICENSE_END============================================
# ===================================================================
#
###

info.build.artifact=@project.artifactId@
info.build.name=@project.name@
info.build.description=@project.description@
info.build.version=@project.version@

### Set the port for HTTP or HTTPS protocol (Controlled by Spring framework, only one at a time).
### (See below for the parameter 'server.http.port' if you want to have both enabled)
### To have only HTTP, keep the lines server.ssl.* commented
### To have only HTTPS enabled, uncomment the server.ssl.* lines and specify a right keystore location
server.port=${clamp.it.tests.http}
### Settings for HTTPS (this automatically enables the HTTPS on the port 'server.port')
#server.ssl.key-store=file:/tmp/mykey.jks
#server.ssl.key-store-password=pass
#server.ssl.key-password=pass

### In order to be user friendly when HTTPS is enabled,
### you can add another HTTP port that will be automatically redirected to HTTPS
### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...)
#server.http-to-https-redirection.port=8090

### HTTP Example:
###--------------
### server.port=8080

### HTTPS Example:
### --------------
### server.port=8443
### server.ssl.key-store=file:/tmp/mykey.jks
### server.ssl.key-store-password=mypass
### server.ssl.key-password=mypass

### HTTP (Redirected to HTTPS) and HTTPS Example:
### --------------------------------------------
### server.port=8443           <-- The HTTPS port
### server.ssl.key-store=file:/tmp/mykey.jks
### server.ssl.key-store-password=mypass
### server.ssl.key-password=mypass
### server.http-to-https-redirection.port=8090  <-- The HTTP port

server.servlet.context-path=/
#Modified engine-rest applicationpath
spring.profiles.active=clamp-default,clamp-default-user
spring.http.converters.preferred-json-mapper=gson

#The max number of active threads in this pool
server.tomcat.max-threads=200
#The minimum number of threads always kept alive
server.tomcat.min-Spare-Threads=25
#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
server.tomcat.max-idle-time=60000

#Servlet context parameters
server.context_parameters.p-name=value #context parameter with p-name as key and value as value.

camel.springboot.consumer-template-cache-size=1000
camel.springboot.producer-template-cache-size=1000
# JMX enabled to have Camel Swagger runtime working
camel.springboot.jmx-enabled=true
camel.defaultthreadpool.poolsize=10
camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
#camel.springboot.xmlRoutes = false
camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
#camel.springboot.typeConversion = false

#clds datasource connection details
spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.cldsdb.url=jdbc:mariadb:sequential://localhost:3306,localhost:${docker.mariadb.port.host}/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
spring.datasource.cldsdb.username=clds
spring.datasource.cldsdb.password=4c90a0b48204383f4283448d23e0b885a47237b2a23588e7c4651604f51c1067
spring.datasource.cldsdb.validationQuery=SELECT 1
spring.datasource.cldsdb.validationQueryTimeout=20000
spring.datasource.cldsdb.validationInterval=30000
spring.datasource.cldsdb.testWhileIdle = true
spring.datasource.cldsdb.minIdle = 0
spring.datasource.cldsdb.initialSize=0
# Automatically test whether a connection provided is good or not
spring.datasource.cldsdb.testOnBorrow=true
spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true

spring.jpa.properties.javax.persistence.schema-generation.database.action=drop-and-create
#spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
# disable Hibernate DDL generation because the schema will be generated from a sql script
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.ddl-auto=validate
spring.jpa.properties.hibernate.hbm2ddl.delimiter=;
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.use-new-id-generator-mappings=true

# Whether to enable logging of SQL statements.
spring.jpa.show-sql=true

#Async Executor default Parameters
async.core.pool.size=10
async.max.pool.size=20
async.queue.capacity=500

#For EELF logback file
#com.att.eelf.logging.path=
clamp.config.logback.filename=logback-default.xml
#The log folder that will be used in logback.xml file
clamp.config.log.path=log
clamp.config.files.systemProperties=classpath:/system.properties
clamp.config.files.cldsUsers=classpath:/clds/clds-users.json
clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json

# Properties for Clamp
# DCAE request build properties
#
clamp.config.dcae.template=classpath:/clds/templates/dcae-template.json
clamp.config.dcae.deployment.template=classpath:/clds/templates/dcae-deployment-template.json
#
#
# Configuration Settings for Policy Engine Components
clamp.config.policy.pdpUrl1=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123
clamp.config.policy.pdpUrl2=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123
clamp.config.policy.papUrl=http://localhost:${docker.http-cache.port.host}/pap/ , testpap, alpha123
clamp.config.policy.notificationType=websocket
clamp.config.policy.notificationUebServers=localhost
clamp.config.policy.notificationTopic=
clamp.config.policy.clientId=python
# base64 encoding
clamp.config.policy.clientKey=dGVzdA==
#DEVL for development
#TEST for Test environments
#PROD for prod environments
clamp.config.policy.policyEnvironment=DEVL
# General Policy request properties
#
clamp.config.policy.onap.name=DCAE
clamp.config.policy.pdp.group=default
clamp.config.policy.ms.type=MicroService
clamp.config.policy.ms.policyNamePrefix=Config_MS_
clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_
clamp.config.policy.base.policyNamePrefix=Config_
clamp.config.policy.op.type=BRMS_Param

clamp.config.import.tosca.model=false
clamp.config.tosca.policyTypes=tca
clamp.config.tosca.filePath=/tmp/tosca-models

# TCA MicroService Policy request build properties
#
clamp.config.tca.policyid.prefix=DCAE.Config_
clamp.config.tca.policy.template=classpath:/clds/templates/tca-policy-template.json
clamp.config.tca.template=classpath:/clds/templates/tca-template.json
clamp.config.tca.thresholds.template=classpath:/clds/templates/tca-thresholds-template.json

#
#
# Operational Policy request build properties
#
clamp.config.op.policyDescription=from clds
# default
clamp.config.op.templateName=ClosedLoopControlName
clamp.config.op.operationTopic=APPC-CL
clamp.config.op.notificationTopic=POLICY-CL-MGT
clamp.config.op.controller=amsterdam
clamp.config.op.policy.appc=APPC
#
# Sdc service properties
#
clamp.config.sdc.csarFolder = ${project.build.directory}/sdc-tests
clamp.config.sdc.blueprint.parser.mapping = classpath:/clds/blueprint-parser-mapping.json
#
clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json
#
# if action.test.override is true, then any action will be marked as test=true (even if incoming action request had test=false); otherwise, test flag will be unchanged on the action request
clamp.config.action.test.override=false
# if action.insert.test.event is true, then insert event even if the action is set to test
clamp.config.action.insert.test.event=false
clamp.config.clds.service.cache.invalidate.after.seconds=120

#DCAE Inventory Url Properties
clamp.config.dcae.inventory.url=http://localhost:${docker.http-cache.port.host}
clamp.config.dcae.intentory.retry.interval=100
clamp.config.dcae.intentory.retry.limit=1

#DCAE Dispatcher Url Properties
clamp.config.dcae.dispatcher.url=http://localhost:${docker.http-cache.port.host}
clamp.config.dcae.dispatcher.retry.interval=100
clamp.config.dcae.dispatcher.retry.limit=1
clamp.config.dcae.header.requestId = X-ECOMP-RequestID

#Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case !
clamp.config.security.permission.type.cl=permission-type-cl
clamp.config.security.permission.type.cl.manage=permission-type-cl-manage
clamp.config.security.permission.type.cl.event=permission-type-cl-event
clamp.config.security.permission.type.filter.vf=permission-type-filter-vf
clamp.config.security.permission.type.template=permission-type-template
clamp.config.security.permission.type.tosca=permission-type-tosca
#This one indicates the type of instances (dev|prod|perf...), this must be set accordingly in clds-users.properties
clamp.config.security.permission.instance=dev
clamp.config.security.authentication.class=org.onap.aaf.cadi.principal.X509Principal