aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdeliveries/src/main/docker/docker-files/Dockerfile7
-rwxr-xr-xdeliveries/src/main/scripts/localize.sh31
-rwxr-xr-xdeliveries/src/main/scripts/localize_asdc.sh17
-rwxr-xr-xdeliveries/src/main/scripts/localize_cache.sh15
-rwxr-xr-xdeliveries/src/main/scripts/localize_log4j.sh19
-rwxr-xr-xdeliveries/src/main/scripts/localize_portal.sh23
-rwxr-xr-xdeliveries/src/main/scripts/localize_quartz.sh20
-rwxr-xr-xdeliveries/src/main/scripts/localize_system.sh43
-rwxr-xr-xdeliveries/src/main/scripts/localize_war.sh26
-rwxr-xr-xdeliveries/src/main/scripts/start.sh9
-rwxr-xr-xepsdk-app-onap/src/main/resources/cache_template.ccf30
-rwxr-xr-xepsdk-app-onap/src/main/resources/portal_template.properties35
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/conf/asdc_template.properties6
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/conf/quartz_template.properties36
-rwxr-xr-xepsdk-app-onap/src/main/webapp/WEB-INF/conf/system_template.properties158
15 files changed, 461 insertions, 14 deletions
diff --git a/deliveries/src/main/docker/docker-files/Dockerfile b/deliveries/src/main/docker/docker-files/Dockerfile
index 192fcd236..1d95efa20 100755
--- a/deliveries/src/main/docker/docker-files/Dockerfile
+++ b/deliveries/src/main/docker/docker-files/Dockerfile
@@ -24,9 +24,6 @@ RUN groupadd -r $group && useradd -ms /bin/bash $user -g $group && \
mkdir /var/log/$user && \
chown -R $user:$group /var/log/$user
-#install procps
-RUN apt-get update && apt-get install -y procps
-
# Kubernetes variables
# set to TRUE (in capital) if on Kubernetes
ENV ON_KUBERNETES="FALSE"
@@ -115,6 +112,6 @@ RUN chown $user:$group /tmp/vid /usr/local/tomcat -R
COPY --chown=$user:$group --from=build /vid /usr/local/tomcat/webapps/vid/
-RUN chmod +x /tmp/vid/start.sh
+RUN chmod +x /tmp/vid/localize.sh
USER $user
-CMD ["/tmp/vid/start.sh"]
+CMD ["/tmp/vid/localize.sh"]
diff --git a/deliveries/src/main/scripts/localize.sh b/deliveries/src/main/scripts/localize.sh
new file mode 100755
index 000000000..e4b8c220d
--- /dev/null
+++ b/deliveries/src/main/scripts/localize.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+fillTemplateProperties() {
+ source /tmp/vid/localize_war.sh $1 || {
+ echo "ERROR: Localization script failed"
+ exit 2
+ }
+}
+
+createWritableLogbackConfig() {
+ # Create logback.xml in /tmp/vid/
+ # /tmp/logback.xml is owned by root and unmodifiable
+ cp -f /tmp/logback.xml /tmp/vid/logback.xml
+}
+
+if [ "${ON_KUBERNETES}" = "TRUE" ]
+then
+ echo "We're running on Kubernetes, preconfiguration is already handled"
+else
+ createWritableLogbackConfig
+ TEMPLATES_BASE_DIR=/usr/local/tomcat/webapps/vid/WEB-INF
+ fillTemplateProperties ${TEMPLATES_BASE_DIR}
+fi
+
+# Set CATALINA_OPTS if not defined previously
+# Enables late-evaluation of env variables, such as VID_KEYSTORE_PASSWORD
+: "${CATALINA_OPTS:=-Dvid.keystore.password=${VID_KEYSTORE_PASSWORD} -Dvid.keyalias=vid@vid.onap.org -Dvid.keystore.filename=${VID_KEYSTORE_FILENAME} -Dcom.att.eelf.logging.file=logback.xml -Dcom.att.eelf.logging.path=/tmp/vid/}"
+echo "CATALINA_OPTS: ${CATALINA_OPTS}"
+export CATALINA_OPTS
+
+catalina.sh run
diff --git a/deliveries/src/main/scripts/localize_asdc.sh b/deliveries/src/main/scripts/localize_asdc.sh
new file mode 100755
index 000000000..af483186f
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_asdc.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+FINAL_CONFIG_FILE=$1/conf/asdc.properties
+TEMPLATE_CONFIG_FILE=$1/conf/asdc_template.properties
+
+echo "Localizing the ASDC client configuration"
+
+sed -e 's ${ASDC_CLIENT_TYPE} '${ASDC_CLIENT_TYPE}' g' \
+ -e 's ${ASDC_CLIENT_REST_HOST} '${ASDC_CLIENT_REST_HOST}' g' \
+ -e 's ${ASDC_CLIENT_REST_PORT} '${ASDC_CLIENT_REST_PORT}' g' \
+ -e 's ${ASDC_CLIENT_REST_PROTOCOL} '${ASDC_CLIENT_REST_PROTOCOL}' g' \
+ -e 's/${ASDC_CLIENT_REST_AUTH}/'"${ASDC_CLIENT_REST_AUTH}"'/g' ${TEMPLATE_CONFIG_FILE} > ${FINAL_CONFIG_FILE} || {
+ echo "ERROR: Could not process template file ${TEMPLATE_CONFIG_FILE} into ${FINAL_CONFIG_FILE}"
+ exit 4
+ }
+
+echo "Localized ${FINAL_CONFIG_FILE} successfully."
diff --git a/deliveries/src/main/scripts/localize_cache.sh b/deliveries/src/main/scripts/localize_cache.sh
new file mode 100755
index 000000000..2d676c373
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_cache.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+FINAL_CONFIG_FILE=$1/classes/cache.ccf
+TEMPLATE_CONFIG_FILE=$1/classes/cache_template.ccf
+
+echo "Localizing the VID cache configuration"
+
+mkdir -p "${CACHE_DIRECTORY}"
+
+sed -e 's,${CACHE_DIRECTORY},'${CACHE_DIRECTORY}',g' ${TEMPLATE_CONFIG_FILE} > ${FINAL_CONFIG_FILE} || {
+ echo "ERROR: Could not process template file ${TEMPLATE_CONFIG_FILE} into ${FINAL_CONFIG_FILE}"
+ exit 3
+ }
+
+echo "Localized ${FINAL_CONFIG_FILE} successfully."
diff --git a/deliveries/src/main/scripts/localize_log4j.sh b/deliveries/src/main/scripts/localize_log4j.sh
new file mode 100755
index 000000000..121f5673a
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_log4j.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+FINAL_CONFIG_FILE=$1/conf/log4j.properties
+TEMPLATE_CONFIG_FILE=$1/conf/log4j_template.properties
+
+echo "Localizing the VID log4j configuration"
+
+mkdir -p ${LOG4J_LOGS_DIRECTORY}
+
+sed -e 's/${LOG4J_LOGLEVEL}/'${LOG4J_LOGLEVEL}'/g' \
+ -e 's/${LOG4J_APPENDER}/'${LOG4J_APPENDER}'/g' \
+ -e 's,${LOG4J_LOGS_DIRECTORY},'${LOG4J_LOGS_DIRECTORY}',g' ${TEMPLATE_CONFIG_FILE} > ${FINAL_CONFIG_FILE} || {
+ echo "ERROR: Could not process template file ${TEMPLATE_CONFIG_FILE} into ${FINAL_CONFIG_FILE}"
+ exit 3
+ }
+
+echo "Localized ${FINAL_CONFIG_FILE} successfully."
+
+
diff --git a/deliveries/src/main/scripts/localize_portal.sh b/deliveries/src/main/scripts/localize_portal.sh
new file mode 100755
index 000000000..947e0e1d0
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_portal.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+FINAL_CONFIG_FILE=$1/classes/portal.properties
+TEMPLATE_CONFIG_FILE=$1/classes/portal_template.properties
+
+echo "Localizing the VID portal configuration"
+
+sed -e 's ${VID_WJ_LOGOUT_URL} '${VID_WJ_LOGOUT_URL}' g' \
+ -e 's ${VID_ECOMP_REDIRECT_URL} '${VID_ECOMP_REDIRECT_URL}' g' \
+ -e 's ${VID_ECOMP_REST_URL} '${VID_ECOMP_REST_URL}' g' \
+ -e 's ${VID_UEB_URL_LIST} '${VID_UEB_URL_LIST}' g' \
+ -e 's ${VID_ECOMP_PORTAL_INBOX_NAME} '${VID_ECOMP_PORTAL_INBOX_NAME}' g' \
+ -e 's ${VID_DECRYPTION_KEY} '${VID_DECRYPTION_KEY}' g' \
+ -e 's ${VID_UEB_APP_KEY} '${VID_UEB_APP_KEY}' g' \
+ -e 's ${VID_UEB_APP_SECRET} '${VID_UEB_APP_SECRET}' g' \
+ -e 's ${VID_UEB_APP_MAILBOX_NAME} '${VID_UEB_APP_MAILBOX_NAME}' g' \
+ -e 's ${VID_UEB_LISTENERS_ENABLE} '${VID_UEB_LISTENERS_ENABLE}' g' \
+ -e 's/${VID_UEB_CONSUMER_GROUP}/'${VID_UEB_CONSUMER_GROUP}'/g' ${TEMPLATE_CONFIG_FILE} > ${FINAL_CONFIG_FILE} || {
+ echo "ERROR: Could not process template file ${TEMPLATE_CONFIG_FILE} into ${FINAL_CONFIG_FILE}"
+ exit 4
+ }
+
+echo "Localized ${FINAL_CONFIG_FILE} successfully."
diff --git a/deliveries/src/main/scripts/localize_quartz.sh b/deliveries/src/main/scripts/localize_quartz.sh
new file mode 100755
index 000000000..e2b3a0adc
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_quartz.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+FINAL_CONFIG_FILE=$1/conf/quartz.properties
+TEMPLATE_CONFIG_FILE=$1/conf/quartz_template.properties
+
+echo "Localizing the VID quartz configuration"
+
+sed -e 's/${VID_MYSQL_HOST}/'${VID_MYSQL_HOST}'/g' \
+ -e 's/${VID_MYSQL_PORT}/'${VID_MYSQL_PORT}'/g' \
+ -e 's/${VID_MYSQL_DBNAME}/'${VID_MYSQL_DBNAME}'/g' \
+ -e 's/${VID_MYSQL_USER}/'${VID_MYSQL_USER}'/g' \
+ -e 's/${VID_MYSQL_PASS}/'"$(printf '%q' "${VID_MYSQL_PASS}")"'/g' \
+ -e 's/${VID_MYSQL_MAXCONNECTIONS}/'${VID_MYSQL_MAXCONNECTIONS}'/g' ${TEMPLATE_CONFIG_FILE} > ${FINAL_CONFIG_FILE} || {
+ echo "ERROR: Could not process template file ${TEMPLATE_CONFIG_FILE} into ${FINAL_CONFIG_FILE}"
+ exit 4
+ }
+
+echo "Localized ${FINAL_CONFIG_FILE} successfully."
+
+
diff --git a/deliveries/src/main/scripts/localize_system.sh b/deliveries/src/main/scripts/localize_system.sh
new file mode 100755
index 000000000..5061a02b3
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_system.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+FINAL_CONFIG_FILE=$1/conf/system.properties
+TEMPLATE_CONFIG_FILE=$1/conf/system_template.properties
+
+echo "Localizing the VID system configuration"
+
+mkdir -p "${VID_MYLOGIN_FEED_DIRECTORY}"
+
+
+sed -e 's/${VID_MYSQL_HOST}/'${VID_MYSQL_HOST}'/g' \
+ -e 's/${VID_MYSQL_PORT}/'${VID_MYSQL_PORT}'/g' \
+ -e 's/${VID_MYSQL_DBNAME}/'${VID_MYSQL_DBNAME}'/g' \
+ -e 's/${VID_MYSQL_USER}/'${VID_MYSQL_USER}'/g' \
+ -e 's/${VID_MYSQL_PASS}/'"$(printf '%q' "${VID_MYSQL_PASS}")"'/g' \
+ -e 's ${VID_AAI_URL} '${VID_AAI_URL}' g' \
+ -e 's/${AAI_USE_CLIENT_CERT}/'${AAI_USE_CLIENT_CERT}'/g' \
+ -e 's/${AAI_VID_UID}/'${AAI_VID_UID}'/g' \
+ -e 's/${AAI_VID_PASSWD_X}/'${AAI_VID_PASSWD_X}'/g' \
+ -e 's,${AAI_TRUSTSTORE_FILENAME},'${AAI_TRUSTSTORE_FILENAME}',g' \
+ -e 's/${AAI_TRUSTSTORE_PASSWD_X}/'${AAI_TRUSTSTORE_PASSWD_X}'/g' \
+ -e 's,${AAI_KEYSTORE_FILENAME},'${AAI_KEYSTORE_FILENAME}',g' \
+ -e 's/${AAI_KEYSTORE_PASSWD_X}/'${AAI_KEYSTORE_PASSWD_X}'/g' \
+ -e 's/${VID_APP_DISPLAY_NAME}/'${VID_APP_DISPLAY_NAME}'/g' \
+ -e 's ${VID_ECOMP_SHARED_CONTEXT_REST_URL} '${VID_ECOMP_SHARED_CONTEXT_REST_URL}' g' \
+ -e 's ${VID_ECOMP_REDIRECT_URL} '${VID_ECOMP_REDIRECT_URL}' g' \
+ -e 's ${VID_ECOMP_REST_URL} '${VID_ECOMP_REST_URL}' g' \
+ -e 's ${VID_MSO_SERVER_URL} '${VID_MSO_SERVER_URL}' g' \
+ -e 's/${VID_MSO_USER}/'${VID_MSO_USER}'/g' \
+ -e 's/${VID_MSO_PASS}/'${VID_MSO_PASS}'/g' \
+ -e 's,${VID_MYLOGIN_FEED_DIRECTORY},'${VID_MYLOGIN_FEED_DIRECTORY}',g' \
+ -e 's,${MSO_DME2_CLIENT_TIMEOUT},'${MSO_DME2_CLIENT_TIMEOUT}',g' \
+ -e 's,${MSO_DME2_CLIENT_READ_TIMEOUT},'${MSO_DME2_CLIENT_READ_TIMEOUT}',g' \
+ -e 's,${MSO_DME2_SERVER_URL},'${MSO_DME2_SERVER_URL}',g' \
+ -e 's,${MSO_DME2_ENABLED},'${MSO_DME2_ENABLED}',g' \
+ -e 's,${MSO_POLLING_INTERVAL_MSECS},'${MSO_POLLING_INTERVAL_MSECS}',g' \
+ -e 's,${VID_TRUSTSTORE_FILE},'${VID_TRUSTSTORE_FILENAME}',g' \
+ -e 's/${VID_TRUSTSTORE_PASS}/'${VID_TRUSTSTORE_PASSWORD}'/g' ${TEMPLATE_CONFIG_FILE} > ${FINAL_CONFIG_FILE} || {
+ echo "ERROR: Could not process template file ${TEMPLATE_CONFIG_FILE} into ${FINAL_CONFIG_FILE}"
+ exit 4
+ }
+
+echo "Localized ${FINAL_CONFIG_FILE} successfully."
diff --git a/deliveries/src/main/scripts/localize_war.sh b/deliveries/src/main/scripts/localize_war.sh
new file mode 100755
index 000000000..29cdc5137
--- /dev/null
+++ b/deliveries/src/main/scripts/localize_war.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+source /tmp/vid/localize_portal.sh $1 || {
+ echo "ERROR: Localizing portal.properties failed"
+ exit 1
+}
+
+source /tmp/vid/localize_quartz.sh $1 || {
+ echo "ERROR: Localizing quartz.properties failed"
+ exit 1
+}
+
+source /tmp/vid/localize_system.sh $1 || {
+ echo "ERROR: Localizing system.properties failed"
+ exit 1
+}
+
+source /tmp/vid/localize_cache.sh $1 || {
+ echo "ERROR: Localizing cache.ccf failed"
+ exit 1
+}
+
+source /tmp/vid/localize_asdc.sh $1 || {
+ echo "ERROR: Localizing asdc.properties failed"
+ exit 1
+}
diff --git a/deliveries/src/main/scripts/start.sh b/deliveries/src/main/scripts/start.sh
deleted file mode 100755
index 6c76ce3ca..000000000
--- a/deliveries/src/main/scripts/start.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Set CATALINA_OPTS if not defined previously
-# Enables late-evaluation of env variables, such as VID_KEYSTORE_PASSWORD
-: "${CATALINA_OPTS:=-Dvid.keystore.password=${VID_KEYSTORE_PASSWORD} -Dvid.keyalias=vid@vid.onap.org -Dvid.keystore.filename=${VID_KEYSTORE_FILENAME} -Dcom.att.eelf.logging.file=logback.xml -Dcom.att.eelf.logging.path=/tmp/vid/}"
-echo "CATALINA_OPTS: ${CATALINA_OPTS}"
-export CATALINA_OPTS
-
-catalina.sh run
diff --git a/epsdk-app-onap/src/main/resources/cache_template.ccf b/epsdk-app-onap/src/main/resources/cache_template.ccf
new file mode 100755
index 000000000..0ff68b83f
--- /dev/null
+++ b/epsdk-app-onap/src/main/resources/cache_template.ccf
@@ -0,0 +1,30 @@
+# DEFAULT CACHE REGION
+jcs.default=DC
+jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
+jcs.default.cacheattributes.MaxObjects=1000
+jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
+jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
+jcs.default.elementattributes.IsEternal=true
+jcs.default.elementattributes.IsSpool=true
+
+
+# MEMORY SHRINKING CONFIGURATION (Commented)
+#jcs.default.cacheattributes.UseMemoryShrinker=true
+#jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+#jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
+#jcs.default.cacheattributes.MaxSpoolPerRun=500
+#jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
+#jcs.default.elementattributes.IsEternal=false
+
+
+# AUXILLARY CACHE CONFIGURATION
+jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
+jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
+jcs.auxiliary.DC.attributes.DiskPath=${CACHE_DIRECTORY}
+
+
+# PRE-DEFINED REGION FOR LOOKUP DATA
+jcs.region.lookUpObjectCache=DC
+jcs.region.lookUpObjectCache.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
+jcs.region.lookUpObjectCache.cacheattributes.MaxObjects=4000
+jcs.region.lookUpObjectCache.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
diff --git a/epsdk-app-onap/src/main/resources/portal_template.properties b/epsdk-app-onap/src/main/resources/portal_template.properties
new file mode 100755
index 000000000..51f39494c
--- /dev/null
+++ b/epsdk-app-onap/src/main/resources/portal_template.properties
@@ -0,0 +1,35 @@
+# Properties read by ECOMP Framework library, ecompFW.jar
+
+portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl
+portal.api.prefix = /api
+max.idle.time = 5
+user.attribute.name = user_attribute
+decryption_key = ${VID_DECRYPTION_KEY}
+
+# Log On for single sign on
+ecomp_redirect_url = ${VID_ECOMP_REDIRECT_URL}
+
+
+# URL of the ECOMP Portal REST API
+ecomp_rest_url = ${VID_ECOMP_REST_URL}
+
+# AAF Mode
+role_access_centralized = ${VID_ROLE_ACCESS_CENTRALIZED}
+
+# UEB servers
+ueb_url_list = ${VID_UEB_URL_LIST}
+
+# ECOMP Portal listens here
+ecomp_portal_inbox_name = ${VID_ECOMP_PORTAL_INBOX_NAME}
+
+# Replace these 3 default values with the ones for your specific App,
+# as shown on the on-boarding page on the ECOMP Portal website.
+ueb_app_key = ${VID_UEB_APP_KEY}
+ueb_app_secret = ${VID_UEB_APP_SECRET}
+ueb_app_mailbox_name = ${VID_UEB_APP_MAILBOX_NAME}
+# Consumer group name for UEB topic.
+# Use the special tag to generate a unique one for each sdk-app server.
+ueb_app_consumer_group_name = ${VID_UEB_CONSUMER_GROUP}
+
+ueb_listeners_enable = ${VID_UEB_LISTENERS_ENABLE}
+ueb_rest_for_function_menu = true
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/conf/asdc_template.properties b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/asdc_template.properties
new file mode 100755
index 000000000..4015da4e6
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/asdc_template.properties
@@ -0,0 +1,6 @@
+asdc.client.type=${ASDC_CLIENT_TYPE}
+
+asdc.client.rest.protocol=${ASDC_CLIENT_REST_PROTOCOL}
+asdc.client.rest.host=${ASDC_CLIENT_REST_HOST}
+asdc.client.rest.port=${ASDC_CLIENT_REST_PORT}
+asdc.client.rest.auth=${ASDC_CLIENT_REST_AUTH}
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/conf/quartz_template.properties b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/quartz_template.properties
new file mode 100755
index 000000000..0332a1c5a
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/quartz_template.properties
@@ -0,0 +1,36 @@
+#################################################################################
+# Quartz configurations for Quantum Work Flow #
+#################################################################################
+
+org.quartz.scheduler.instanceId = AUTO
+
+#################################################################################
+# Main configurations
+org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
+org.quartz.threadPool.threadCount = 30
+
+============================================================================
+# Configure JobStore
+#============================================================================
+
+org.quartz.jobStore.misfireThreshold = 60000
+
+org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
+org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+org.quartz.jobStore.useProperties = false
+#org.quartz.jobStore.dataSource = myDS
+org.quartz.jobStore.tablePrefix = FN_QZ_
+
+org.quartz.jobStore.isClustered = true
+org.quartz.jobStore.clusterCheckinInterval = 20000
+
+#============================================================================
+# Configure Datasources
+#============================================================================
+
+org.quartz.dataSource.myDS.driver = org.mariadb.jdbc.Driver
+org.quartz.dataSource.myDS.URL = jdbc:mariadb://${VID_MYSQL_HOST}:${VID_MYSQL_PORT}/${VID_MYSQL_DBNAME}
+org.quartz.dataSource.myDS.user = ${VID_MYSQL_USER}
+org.quartz.dataSource.myDS.password = ${VID_MYSQL_PASS}
+org.quartz.dataSource.myDS.maxConnections = ${VID_MYSQL_MAXCONNECTIONS}
+org.quartz.dataSource.myDS.validationQuery=select 0 from dual
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system_template.properties b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system_template.properties
new file mode 100755
index 000000000..8ca30a339
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/conf/system_template.properties
@@ -0,0 +1,158 @@
+###
+# ================================================================================
+# eCOMP Portal SDK
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property
+# ================================================================================
+# 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.
+# ================================================================================
+###
+
+##########################################################################
+# The following properties MAY require changes by partner applications.
+##########################################################################
+
+cookie_domain = onap.org
+#mysql
+db.driver = org.mariadb.jdbc.Driver
+db.connectionURL = jdbc:mariadb://${VID_MYSQL_HOST}:${VID_MYSQL_PORT}/${VID_MYSQL_DBNAME}
+db.userName = ${VID_MYSQL_USER}
+db.password = ${VID_MYSQL_PASS}
+db.hib.dialect = org.hibernate.dialect.MySQLDialect
+db.min_pool_size = 5
+db.max_pool_size = 10
+hb.dialect = org.hibernate.dialect.MySQLDialect
+
+hb.show_sql = false # this property is set in logger configuration to keep console output clean
+hb.idle_connection_test_period = 3600
+app_display_name = ${VID_APP_DISPLAY_NAME}
+files_path = /tmp
+
+application_name = Virtual Infrastructure Deployment
+application_user_id = 30000
+post_default_role_id = 16
+clustered = true
+
+#Enable Fusion Mobile capabilities for the application
+mobile_enable = false
+
+# Cache config file is needed on the classpath
+cache_config_file_path = /WEB-INF/classes/cache.ccf
+cache_switch = 199
+cache_load_on_startup = false
+
+user_name = fullName
+
+decryption_key = ${VID_DECRYPTION_KEY}
+
+#element map files
+element_map_file_path = /tmp
+element_map_icon_path = app/vid/icons/
+
+role_management_activated = false
+
+#aai related properties
+aai.server.url.base=${VID_AAI_URL}/aai/
+aai.server.url=${VID_AAI_URL}/aai/v19/
+aai.truststore.filename=${AAI_TRUSTSTORE_FILENAME}
+aai.truststore.passwd.x=${AAI_TRUSTSTORE_PASSWD_X}
+aai.keystore.filename=${AAI_KEYSTORE_FILENAME}
+aai.keystore.passwd.x=${AAI_KEYSTORE_PASSWD_X}
+aai.vid.username=${AAI_VID_UID}
+aai.vid.passwd.x=${AAI_VID_PASSWD_X}
+aai.use.client.cert=${AAI_USE_CLIENT_CERT}
+aai.vnf.provstatus=${AAI_VNF_PROVSTATUS}
+
+# ECOMP Portal Shared Context REST API URL
+ecomp_shared_context_rest_url=${VID_ECOMP_SHARED_CONTEXT_REST_URL}
+#Cron Schedules
+log_cron = 0 0/1 * * * ?;
+mylogins_feed_cron = 0 0/60 * * * ?;
+#sessiontimeout_feed_cron = 0 * * * * ? *
+my_login_feed_output_dir = ${VID_MYLOGIN_FEED_DIRECTORY}
+
+# Link shown in Help menu
+contact_us_link=${VID_CONTACT_US_LINK}
+homepage_contact_us_url= mailto:portal@lists.onap.org
+
+# An Unique 128-bit value defined to identify a specific version
+# of an application deployed on a specific virtual machine.
+# This value must be generated and updated by the application
+# which is using the ECOMP SDK at the time of its deployment.
+# Online Unique UUID generator - https://www.uuidgenerator.net/
+instance_uuid=292b461a-2954-4b63-a3f9-f916c7ad3bc0
+
+
+#MSO related properties
+mso.server.url=${VID_MSO_SERVER_URL}
+mso.polling.interval.msecs=${MSO_POLLING_INTERVAL_MSECS}
+mso.max.polls=10
+mso.user.name=${VID_MSO_USER}
+mso.password.x=${VID_MSO_PASS}
+
+#E2E is v3
+mso.restapi.svc.e2einstance=/e2eServiceInstances/v3
+mso.restapi.service.instance=${mso.restapi.serviceInstantiationApiRoot}/serviceInstances
+mso.restapi.vnf.instance=${mso.restapi.serviceInstantiationApiRoot}/serviceInstances/<service_instance_id>/vnfs
+mso.restapi.vnf.changemanagement.instance=${mso.restapi.service.instance}/<service_instance_id>/vnfs/<vnf_instance_id>/<request_type>
+mso.restapi.network.instance=${mso.restapi.serviceInstantiationApiRoot}/serviceInstances/<service_instance_id>/networks
+mso.restapi.vf.module.scaleout=/serviceInstantiation/v7/serviceInstances/<service_instance_id>/vnfs/<vnf_instance_id>/vfModules/scaleOut
+mso.restapi.vf.module.instance=${mso.restapi.serviceInstantiationApiRoot}/serviceInstances/<service_instance_id>/vnfs/<vnf_instance_id>/vfModules
+mso.restapi.workflow.invoke=/instanceManagement/v1/serviceInstances/<service_instance_id>/vnfs/<vnf_instance_id>/workflows/<workflow_UUID>
+mso.restapi.volume.group.instance=${mso.restapi.vnf.instance}/<vnf_instance_id>/volumeGroups
+mso.restapi.instance.group=${mso.restapi.serviceInstantiationApiRoot}/instanceGroups
+mso.restapi.get.orc.req=/orchestrationRequests/v7
+mso.restapi.get.orc.reqs=/orchestrationRequests/v7?
+mso.restapi.resume.orc.req=/orchestrationRequests/v7/<request_id>/resume
+mso.restapi.get.man.tasks=/tasks/v1
+mso.restapi.configurations=${mso.restapi.service.instance}/<service_instance_id>/configurations
+mso.restapi.configuration.instance=${mso.restapi.configurations}/<configuration_id>
+mso.restapi.changeManagement.workflowSpecifications=/workflowSpecifications/v1/workflows?vnfModelVersionId=<model_version_id>
+
+mso.restapi.serviceInstantiationApiRoot=/serviceInstantiation/v7
+mso.restapi.serviceInstanceAssign=${mso.restapi.serviceInstantiationApiRoot}/serviceInstances/assign
+
+mso.restapi.cloudResourcesApiRoot=/cloudResources/v1
+mso.restapi.operationalEnvironment=${mso.restapi.cloudResourcesApiRoot}/operationalEnvironments/<operational_environment_id>
+
+mso.restapi.operationalEnvironment.activate=${mso.restapi.operationalEnvironment}/activate
+mso.restapi.operationalEnvironment.deactivate=${mso.restapi.operationalEnvironment}/deactivate
+mso.restapi.operationalEnvironment.create=${mso.restapi.cloudResourcesApiRoot}/operationalEnvironments
+
+mso.restapi.cloudResourcesRequestsApiRoot=/cloudResourcesRequests/v1
+mso.restapi.operationalEnvironment.cloudResourcesRequests.status=${mso.restapi.cloudResourcesRequestsApiRoot}?requestId=<request_id>
+
+mso.displayTestAPIOnScreen=true
+mso.defaultTestAPI=GR_API
+mso.maxOpenedInstantiationRequests=200
+mso.asyncPollingIntervalSeconds=1
+refreshTimeInstantiationDashboard=10
+
+vid.truststore.filename=${VID_TRUSTSTORE_FILE}
+vid.truststore.passwd.x=${VID_TRUSTSTORE_PASS}
+mso.dme2.client.timeout=${MSO_DME2_CLIENT_TIMEOUT}
+mso.dme2.client.read.timeout=${MSO_DME2_CLIENT_READ_TIMEOUT}
+mso.dme2.server.url=${MSO_DME2_SERVER_URL}
+mso.dme2.enabled=${MSO_DME2_ENABLED}
+
+asdc.model.namespace=org.openecomp.
+sdc.svc.api.path=sdc/v1/catalog/services
+
+features.set.filename=onap.features.properties
+
+vid.asyncJob.maxHoursInProgress=24
+vid.asyncJob.howLongToKeepOldJobsInDays=7
+
+# thread definition - count and timeout (in seconds)
+vid.thread.count=50
+vid.thread.timeout=30