OSAM infra seed code - merge with osam-core side-by-side - fixed warnings in onap-enabler POMs
Change-Id: I0cd9ea39d4b7c1dc088ab0ecd6fb787c7f490e5e
Signed-off-by: Aharoni, Pavel (pa0916) <pavel.aharoni@intl.att.com>
diff --git a/onap-enabler-infra/src/main/resources/cache.ccf b/onap-enabler-infra/src/main/resources/cache.ccf
new file mode 100644
index 0000000..22cace1
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/cache.ccf
@@ -0,0 +1,52 @@
+#<!--/*-
+# * ============LICENSE_START=======================================================
+# * OSAM Core
+# * ================================================================================
+# * Copyright (C) 2018 AT&T
+# * ================================================================================
+# * 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=========================================================
+# */
+#-->
+
+
+# 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=/tmp
+
+
+# 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/onap-enabler-infra/src/main/resources/cache_template.ccf b/onap-enabler-infra/src/main/resources/cache_template.ccf
new file mode 100644
index 0000000..19c36bb
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/cache_template.ccf
@@ -0,0 +1,52 @@
+#<!--/*-
+# * ============LICENSE_START=======================================================
+# * OSAM Core
+# * ================================================================================
+# * Copyright (C) 2018 AT&T
+# * ================================================================================
+# * 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=========================================================
+# */
+#-->
+
+
+# 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/onap-enabler-infra/src/main/resources/catalog.json b/onap-enabler-infra/src/main/resources/catalog.json
new file mode 100644
index 0000000..e5fb521
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/catalog.json
@@ -0,0 +1,174 @@
+{
+ "services": {
+ "0346aa9f-57b7-458a-9681-daf5b19d52b0": {
+ "uuid": "0346aa9f-57b7-458a-9681-daf5b19d52b0",
+ "name": "The Worst Service",
+ "version": "1.0",
+ "toscaModelURL": "sampleTosca.csar",
+ "category": "Bad Services",
+ "lifecycleState": "NOT_CERTIFIED_CHECKOUT",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "distributionStatus": "DISTRIBUTION_REJECTED",
+ "artifacts": [],
+ "resources": []
+ },
+ "1346aa9f-57b7-458a-9681-daf5b19d52b1": {
+ "uuid": "1346aa9f-57b7-458a-9681-daf5b19d52b1",
+ "name": "The Worst Service",
+ "version": "1.1",
+ "toscaModelURL": "sampleTosca.csar",
+ "category": "Bad Services",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "distributionStatus": "DISTRIBUTED",
+ "artifacts": [],
+ "resources": []
+ },
+ "3346aa9f-57b7-458a-9681-daf5b19d52b3": {
+ "uuid": "3346aa9f-57b7-458a-9681-daf5b19d52b3",
+ "name": "Bland Service",
+ "version": "1.9",
+ "toscaModelURL": "sampleTosca.csar",
+ "category": "Neutral Services",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "distributionStatus": "DISTRIBUTION_NOT_APPROVED",
+ "artifacts": [],
+ "resources": []
+ },
+ "2346aa9f-57b7-458a-9681-daf5b19d52b2": {
+ "uuid": "2346aa9f-57b7-458a-9681-daf5b19d52b2",
+ "name": "The Best Service",
+ "version": "1.3",
+ "toscaModelURL": "sampleTosca.csar",
+ "category": "Good Services",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "distributionStatus": "DISTRIBUTION_APPROVED",
+ "artifacts": [
+ {
+ "artifactUUID": "0cf78c81-1246-45e7-a190-eaa309ee5680",
+ "generatedFromUUID": "3cf78c81-1246-45e7-a190-eaa309ee5680",
+ "artifactName": "The Worst Artifact",
+ "artifactType": "HEAT",
+ "artifactDescription": "This is the worst artifact",
+ "artifactURL": "http://www.openecomp.org/",
+ "artifactTimeout": "60",
+ "artifactChecksum": "A worthy checksum",
+ "artifactVersion": "0.1",
+ },
+ {
+ "artifactUUID": "1cf78c81-1246-45e7-a190-eaa309ee5681",
+ "generatedFromUUID": "3cf78c81-1246-45e7-a190-eaa309ee5680",
+ "artifactName": "The Worst Artifact",
+ "artifactType": "HEAT",
+ "artifactDescription": "This is the worst artifact",
+ "artifactURL": "http://www.openecomp.org/",
+ "artifactTimeout": "60",
+ "artifactChecksum": "A worthy checksum",
+ "artifactVersion": "0.1",
+ },
+ {
+ "artifactUUID": "2cf78c81-1246-45e7-a190-eaa309ee5682",
+ "generatedFromUUID": "3cf78c81-1246-45e7-a190-eaa309ee5680",
+ "artifactName": "The Worst Artifact",
+ "artifactType": "HEAT",
+ "artifactDescription": "This is the worst artifact",
+ "artifactURL": "http://www.openecomp.org/",
+ "artifactTimeout": "60",
+ "artifactChecksum": "A worthy checksum",
+ "artifactVersion": "0.1",
+ }
+ ],
+ "resources": []
+ }
+ },
+ "resources": {
+ "2f92b5b0-10ff-4cf4-9531-88546fe88a42": {
+ "uuid": "2f92b5b0-10ff-4cf4-9531-88546fe88a42",
+ "invariantUUID": "df92b5b0-10ff-4cf4-9531-88546fe88a4d",
+ "name": "The Worst Resource",
+ "version": "0.1",
+ "toscaModelURL": "sampleTosca.csar",
+ "toscaModel": "http://www.openecomp.org/",
+ "toscaResourceName": "The Worst Resource (TOSCA)",
+ "category": "Bad Resources",
+ "subCategory": "Really Bad Resources",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "artifacts": [
+ {
+ "artifactUUID": "0cf78c81-1246-45e7-a190-eaa309ee5680",
+ "generatedFromUUID": "3cf78c81-1246-45e7-a190-eaa309ee5680",
+ "artifactName": "The Worst Artifact",
+ "artifactType": "HEAT",
+ "artifactDescription": "This is the worst artifact",
+ "artifactURL": "http://www.openecomp.org/",
+ "artifactTimeout": "60",
+ "artifactChecksum": "A worthy checksum",
+ "artifactVersion": "0.1",
+ },
+ {
+ "artifactUUID": "1cf78c81-1246-45e7-a190-eaa309ee5681",
+ "generatedFromUUID": "3cf78c81-1246-45e7-a190-eaa309ee5680",
+ "artifactName": "The Worst Artifact",
+ "artifactType": "HEAT",
+ "artifactDescription": "This is the worst artifact",
+ "artifactURL": "http://www.openecomp.org/",
+ "artifactTimeout": "60",
+ "artifactChecksum": "A worthy checksum",
+ "artifactVersion": "0.1",
+ },
+ {
+ "artifactUUID": "2cf78c81-1246-45e7-a190-eaa309ee5682",
+ "generatedFromUUID": "3cf78c81-1246-45e7-a190-eaa309ee5680",
+ "artifactName": "The Worst Artifact",
+ "artifactType": "HEAT",
+ "artifactDescription": "This is the worst artifact",
+ "artifactURL": "http://www.openecomp.org/",
+ "artifactTimeout": "60",
+ "artifactChecksum": "A worthy checksum",
+ "artifactVersion": "0.1",
+ }
+ ]
+ },
+ "0f92b5b0-10ff-4cf4-9531-88546fe88a40": {
+ "uuid": "0f92b5b0-10ff-4cf4-9531-88546fe88a40",
+ "invariantUUID": "df92b5b0-10ff-4cf4-9531-88546fe88a4d",
+ "name": "The Worst Resource",
+ "version": "0.1",
+ "toscaModelURL": "sampleTosca.csar",
+ "toscaModel": "http://www.openecomp.org/",
+ "toscaResourceName": "The Worst Resource (TOSCA)",
+ "category": "Bad Resources",
+ "subCategory": "Really Bad Resources",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "artifacts": []
+ },
+ "1f92b5b0-10ff-4cf4-9531-88546fe88a41": {
+ "uuid": "1f92b5b0-10ff-4cf4-9531-88546fe88a41",
+ "invariantUUID": "df92b5b0-10ff-4cf4-9531-88546fe88a4d",
+ "name": "The Worst Resource",
+ "version": "0.1",
+ "toscaModelURL": "sampleTosca.csar",
+ "toscaModel": "http://www.openecomp.org/",
+ "toscaResourceName": "The Worst Resource (TOSCA)",
+ "category": "Bad Resources",
+ "subCategory": "Really Bad Resources",
+ "resourceType": "VF",
+ "lifecycleState": "CERTIFIED",
+ "lastUpdaterUserId": "example@example.org",
+ "lastUpdaterFullName": "Example User",
+ "artifacts": []
+ }
+ }
+}
\ No newline at end of file
diff --git a/onap-enabler-infra/src/main/resources/key.properties b/onap-enabler-infra/src/main/resources/key.properties
new file mode 100644
index 0000000..d2bfb48
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/key.properties
@@ -0,0 +1,41 @@
+###
+# ============LICENSE_START==========================================
+# ONAP Portal SDK
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the “License”);
+# you may not use this software 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.
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# 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============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+###
+
+# Properties read by the ECOMP Framework library (epsdk-fw)
+
+cipher.enc.key = AGLDdG4D04BKm2IxIWEr8o==!
\ No newline at end of file
diff --git a/onap-enabler-infra/src/main/resources/logback.xml b/onap-enabler-infra/src/main/resources/logback.xml
new file mode 100644
index 0000000..14b534d
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/logback.xml
@@ -0,0 +1,371 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START==========================================
+ ONAP Portal SDK
+ ===================================================================
+ Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ ===================================================================
+
+ Unless otherwise specified, all software contained herein is licensed
+ under the Apache License, Version 2.0 (the “License”);
+ you may not use this software 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.
+
+ Unless otherwise specified, all documentation contained herein is licensed
+ under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ you may not use this documentation except in compliance with the License.
+ You may obtain a copy of the License at
+
+ https://creativecommons.org/licenses/by/4.0/
+
+ Unless required by applicable law or agreed to in writing, documentation
+ 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============================================
+
+ ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ -->
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+ <!--
+ Logback files for the ONAP Portal SDK Application "epsdk-app-os"
+ are created in directory ${catalina.base}/logs/epsdk_app_os;
+ e.g., apache-tomcat-8.0.35/logs/epsdk_app_os/application.log
+ -->
+ <!--<jmxConfigurator /> -->
+
+ <!-- specify the component name -->
+ <property name="componentName" value="ep_sdk_app"></property>
+
+ <!-- specify the base path of the log directory -->
+ <property name="logDirPrefix" value="${catalina.base}/logs"></property>
+
+ <!-- The directories where logs are written -->
+ <property name="logDirectory" value="${logDirPrefix}/${componentName}" />
+ <!-- Can easily relocate debug logs by modifying this path. -->
+ <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}" />
+
+ <!-- log file names -->
+ <property name="generalLogName" value="application" />
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+ <!--
+ These loggers are not used in code (yet).
+ <property name="securityLogName" value="security" />
+ <property name="policyLogName" value="policy" />
+ <property name="performanceLogName" value="performance" />
+ <property name="serverLogName" value="server" />
+ -->
+
+ <!-- 1610 Logging Fields Format Revisions -->
+ <property name="auditLoggerPattern"
+ value="%X{AuditLogBeginTimestamp}|%X{AuditLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n" />
+
+ <property name="metricsLoggerPattern"
+ value="%X{MetricsLogBeginTimestamp}|%X{MetricsLogEndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVisualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}| %msg%n" />
+
+ <property name="errorLoggerPattern"
+ value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ClassName}|%X{AlertSeverity}|%X{ErrorCode}|%X{ErrorDescription}| %msg%n" />
+
+ <property name="defaultLoggerPattern"
+ value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ClassName}| %msg%n" />
+
+ <!-- use %class so library logging calls yield their class name -->
+ <property name="applicationLoggerPattern"
+ value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%class{36}| %msg%n" />
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily rollover -->
+ <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+
+ <!-- keep 30 days' worth of history capped at 3GB total size -->
+ <maxHistory>30</maxHistory>
+ <totalSizeCap>3GB</totalSizeCap>
+
+ </rollingPolicy>
+ <encoder>
+ <pattern>${applicationLoggerPattern}</pattern>
+ </encoder>
+ <filter class="org.onap.portalapp.util.CustomLoggingFilter" />
+ </appender>
+
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <!-- Class name is part of caller data -->
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <!-- EELF Security Appender. This appender is used to record security events
+ to the security log file. Security events are separate from other loggers
+ in EELF so that security log records can be captured and managed in a secure
+ way separate from the other logs. This appender is set to never discard any
+ events. -->
+ <!--
+ <appender name="EELFSecurity"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${securityLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFSecurity" />
+ </appender>
+ -->
+
+ <!-- EELF Performance Appender. This appender is used to record performance
+ records. -->
+ <!--
+ <appender name="EELFPerformance"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${performanceLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <outputPatternAsHeader>true</outputPatternAsHeader>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFPerformance" />
+ </appender>
+ -->
+
+ <!-- EELF Server Appender. This appender is used to record Server related
+ logging events. The Server logger and appender are specializations of the
+ EELF application root logger and appender. This can be used to segregate Server
+ events from other components, or it can be eliminated to record these events
+ as part of the application root log. -->
+ <!--
+ <appender name="EELFServer"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${serverLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFServer" />
+ </appender>
+ -->
+
+ <!-- EELF Policy Appender. This appender is used to record Policy engine
+ related logging events. The Policy logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+ <!--
+ <appender name="EELFPolicy"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${policyLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFPolicy" />
+ </appender>
+ -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily rollover -->
+ <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+
+ <!-- keep 30 days' worth of history capped at 3GB total size -->
+ <maxHistory>30</maxHistory>
+ <totalSizeCap>3GB</totalSizeCap>
+
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily rollover -->
+ <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+
+ <!-- keep 30 days' worth of history capped at 3GB total size -->
+ <maxHistory>30</maxHistory>
+ <totalSizeCap>3GB</totalSizeCap>
+
+ </rollingPolicy>
+ <encoder>
+ <pattern>${metricsLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily rollover -->
+ <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+
+ <!-- keep 30 days' worth of history capped at 3GB total size -->
+ <maxHistory>30</maxHistory>
+ <totalSizeCap>3GB</totalSizeCap>
+
+ </rollingPolicy>
+ <encoder>
+ <pattern>${errorLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- daily rollover -->
+ <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+
+ <!-- keep 30 days' worth of history capped at 3GB total size -->
+ <maxHistory>30</maxHistory>
+ <totalSizeCap>3GB</totalSizeCap>
+
+ </rollingPolicy>
+ <encoder>
+ <pattern>${defaultLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ </appender>
+
+
+
+
+ <logger name="org.onap.eelf" level="info" additivity="false">
+ <appender-ref ref="asyncEELF" />
+ </logger>
+
+ <logger name="org.onap.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="org.onap.eelf.debug" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFDebug" />
+ </logger>
+
+ <logger name="org.onap.eelf.error" level="info" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+
+ <logger name="org.onap.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+
+ <root level="DEBUG">
+ <appender-ref ref="asyncEELF" />
+ </root>
+
+</configuration>
diff --git a/onap-enabler-infra/src/main/resources/logback_template.xml b/onap-enabler-infra/src/main/resources/logback_template.xml
new file mode 100644
index 0000000..41b9781
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/logback_template.xml
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!--/*-
+ * ============LICENSE_START=======================================================
+ * OSAM Core
+ * ================================================================================
+ * Copyright (C) 2018 AT&T
+ * ================================================================================
+ * 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=========================================================
+ */
+ -->
+
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+ <!-- specify the component name -->
+ <property name="componentName" value="vid"></property>
+
+ <!-- specify the base path of the log directory -->
+ <property name="logDirPrefix" value="${VID_LOG_DIR}"></property>
+
+ <!-- The directories where logs are written -->
+ <property name="logDirectory" value="${logDirPrefix}/${componentName}" />
+ <!-- Can easily relocate debug logs by modifying this path. -->
+ <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}" />
+
+ <!-- log file names -->
+ <property name="generalLogName" value="application" />
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+ <!--
+ These loggers are not used in code (yet).
+ <property name="securityLogName" value="security" />
+ <property name="policyLogName" value="policy" />
+ <property name="performanceLogName" value="performance" />
+ <property name="serverLogName" value="server" />
+ -->
+
+ <property name="defaultPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+ <property name="debugLoggerPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}| %msg%n" />
+ <!-- <property name="debugLoggerPattern" value="%date{ISO8601}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />-->
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+
+ <appender name="EELF"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${generalLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${generalLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ <filter class="org.onap.portalapp.util.CustomLoggingFilter" />
+ </appender>
+
+ <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELF" />
+ </appender>
+
+ <!-- EELF Security Appender. This appender is used to record security events
+ to the security log file. Security events are separate from other loggers
+ in EELF so that security log records can be captured and managed in a secure
+ way separate from the other logs. This appender is set to never discard any
+ events. -->
+ <!--
+ <appender name="EELFSecurity"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${securityLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFSecurity" />
+ </appender>
+ -->
+
+ <!-- EELF Performance Appender. This appender is used to record performance
+ records. -->
+ <!--
+ <appender name="EELFPerformance"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${performanceLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <outputPatternAsHeader>true</outputPatternAsHeader>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFPerformance" />
+ </appender>
+ -->
+
+ <!-- EELF Server Appender. This appender is used to record Server related
+ logging events. The Server logger and appender are specializations of the
+ EELF application root logger and appender. This can be used to segregate Server
+ events from other components, or it can be eliminated to record these events
+ as part of the application root log. -->
+ <!--
+ <appender name="EELFServer"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${serverLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFServer" />
+ </appender>
+ -->
+
+ <!-- EELF Policy Appender. This appender is used to record Policy engine
+ related logging events. The Policy logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+ <!--
+ <appender name="EELFPolicy"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${policyLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFPolicy" />
+ </appender>
+ -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${debugLoggerPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+ <logger name="com.att.eelf" level="debug" additivity="false">
+ <appender-ref ref="asyncEELF" />
+ </logger>
+
+ <!--
+ <logger name="com.att.eelf.security" level="info" additivity="false">
+ <appender-ref ref="asyncEELFSecurity" />
+ </logger>
+ <logger name="com.att.eelf.perf" level="info" additivity="false">
+ <appender-ref ref="asyncEELFPerformance" />
+ </logger>
+ <logger name="com.att.eelf.server" level="info" additivity="false">
+ <appender-ref ref="asyncEELFServer" />
+ </logger>
+ <logger name="com.att.eelf.policy" level="info" additivity="false">
+ <appender-ref ref="asyncEELFPolicy" />
+ </logger>
+ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="info" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+
+ <logger name="com.att.eelf.debug" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFDebug" />
+ </logger>
+
+
+ <root level="${VID_LOG_LEVEL}">
+ <appender-ref ref="asyncEELF" />
+ </root>
+
+</configuration>
diff --git a/onap-enabler-infra/src/main/resources/mchange-log.properties b/onap-enabler-infra/src/main/resources/mchange-log.properties
new file mode 100644
index 0000000..37e6f50
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/mchange-log.properties
@@ -0,0 +1,23 @@
+###
+# ================================================================================
+# 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.
+# ================================================================================
+###
+# Direct the proprietary logger used by com.mchange.c3p0 to use slf4j
+
+com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
+com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF
diff --git a/onap-enabler-infra/src/main/resources/my.cnf b/onap-enabler-infra/src/main/resources/my.cnf
new file mode 100644
index 0000000..b47f64f
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/my.cnf
@@ -0,0 +1,192 @@
+# MariaDB database server configuration file.
+#
+# You can copy this file to one of:
+# - "/etc/mysql/my.cnf" to set global options,
+# - "~/.my.cnf" to set user-specific options.
+#
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+#
+# For explanations see
+# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
+
+# This will be passed to all mysql clients
+# It has been reported that passwords should be enclosed with ticks/quotes
+# escpecially if they contain "#" chars...
+# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
+[client]
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+
+# Here is entries for some specific programs
+# The following values assume you have at least 32M ram
+
+# This was formally known as [safe_mysqld]. Both versions are currently parsed.
+[mysqld_safe]
+socket = /var/run/mysqld/mysqld.sock
+nice = 0
+
+[mysqld]
+lower_case_table_names = 1
+skip-host-cache
+skip-name-resolve
+#
+# * Basic Settings
+#
+#user = mysql
+pid-file = /var/run/mysqld/mysqld.pid
+socket = /var/run/mysqld/mysqld.sock
+port = 3306
+basedir = /usr
+datadir = /var/lib/mysql
+tmpdir = /tmp
+lc_messages_dir = /usr/share/mysql
+lc_messages = en_US
+skip-external-locking
+#
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+#bind-address = 127.0.0.1
+#
+# * Fine Tuning
+#
+max_connections = 100
+connect_timeout = 5
+wait_timeout = 600
+max_allowed_packet = 16M
+thread_cache_size = 128
+sort_buffer_size = 4M
+bulk_insert_buffer_size = 16M
+tmp_table_size = 32M
+max_heap_table_size = 32M
+#
+# * MyISAM
+#
+# This replaces the startup script and checks MyISAM tables if needed
+# the first time they are touched. On error, make copy and try a repair.
+myisam_recover_options = BACKUP
+key_buffer_size = 128M
+#open-files-limit = 2000
+table_open_cache = 400
+myisam_sort_buffer_size = 512M
+concurrent_insert = 2
+read_buffer_size = 2M
+read_rnd_buffer_size = 1M
+#
+# * Query Cache Configuration
+#
+# Cache only tiny result sets, so we can fit more in the query cache.
+query_cache_limit = 128K
+query_cache_size = 64M
+# for more write intensive setups, set to DEMAND or OFF
+#query_cache_type = DEMAND
+#
+# * Logging and Replication
+#
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+# As of 5.1 you can enable the log at runtime!
+#general_log_file = /var/log/mysql/mysql.log
+#general_log = 1
+#
+# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
+#
+# we do want to know about network errors and such
+#log_warnings = 2
+#
+# Enable the slow query log to see queries with especially long duration
+#slow_query_log[={0|1}]
+slow_query_log_file = /var/log/mysql/mariadb-slow.log
+long_query_time = 10
+#log_slow_rate_limit = 1000
+#log_slow_verbosity = query_plan
+
+#log-queries-not-using-indexes
+#log_slow_admin_statements
+#
+# The following can be used as easy to replay backup logs or for replication.
+# note: if you are setting up a replication slave, see README.Debian about
+# other settings you may need to change.
+#server-id = 1
+#report_host = master1
+#auto_increment_increment = 2
+#auto_increment_offset = 1
+#log_bin = /var/log/mysql/mariadb-bin
+#log_bin_index = /var/log/mysql/mariadb-bin.index
+# not fab for performance, but safer
+#sync_binlog = 1
+expire_logs_days = 10
+max_binlog_size = 100M
+# slaves
+#relay_log = /var/log/mysql/relay-bin
+#relay_log_index = /var/log/mysql/relay-bin.index
+#relay_log_info_file = /var/log/mysql/relay-bin.info
+#log_slave_updates
+#read_only
+#
+# If applications support it, this stricter sql_mode prevents some
+# mistakes like inserting invalid dates etc.
+#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL
+#
+# * InnoDB
+#
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+default_storage_engine = InnoDB
+# you can't just change log file size, requires special procedure
+#innodb_log_file_size = 50M
+innodb_buffer_pool_size = 256M
+innodb_log_buffer_size = 8M
+innodb_file_per_table = 1
+innodb_open_files = 400
+innodb_io_capacity = 400
+innodb_flush_method = O_DIRECT
+#
+# * Security Features
+#
+# Read the manual, too, if you want chroot!
+# chroot = /var/lib/mysql/
+#
+# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
+#
+# ssl-ca=/etc/mysql/cacert.pem
+# ssl-cert=/etc/mysql/server-cert.pem
+# ssl-key=/etc/mysql/server-key.pem
+
+#
+# * Galera-related settings
+#
+[galera]
+# Mandatory settings
+#wsrep_on=ON
+#wsrep_provider=
+#wsrep_cluster_address=
+#binlog_format=row
+#default_storage_engine=InnoDB
+#innodb_autoinc_lock_mode=2
+#
+# Allow server to accept connections on all interfaces.
+#
+#bind-address=0.0.0.0
+#
+# Optional setting
+#wsrep_slave_threads=1
+#innodb_flush_log_at_trx_commit=0
+
+[mysqldump]
+quick
+quote-names
+max_allowed_packet = 16M
+
+[mysql]
+#no-auto-rehash # faster start of mysql but no tab completion
+
+[isamchk]
+key_buffer = 16M
+
+#
+# * IMPORTANT: Additional settings that can override those from this file!
+# The files must end with '.cnf', otherwise they'll be ignored.
+#
+!includedir /etc/mysql/conf.d/
\ No newline at end of file
diff --git a/onap-enabler-infra/src/main/resources/osam-core-data.sql b/onap-enabler-infra/src/main/resources/osam-core-data.sql
new file mode 100644
index 0000000..2437e82
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/osam-core-data.sql
@@ -0,0 +1,709 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+USE osam_core;
+
+DELETE FROM `fn_datasource`;
+TRUNCATE `fn_menu`;
+DELETE FROM `fn_role_function`;
+DELETE FROM `fn_restricted_url`;
+DELETE FROM `fn_tab_selected`;
+DELETE FROM `fn_tab`;
+DELETE FROM `fn_function`;
+DELETE FROM `fn_lu_alert_method`;
+DELETE FROM `fn_lu_activity`;
+DELETE FROM `fn_lu_call_times`;
+DELETE FROM `fn_lu_country`;
+DELETE FROM `fn_lu_menu_set`;
+DELETE FROM `fn_lu_priority`;
+DELETE FROM `fn_lu_state`;
+DELETE FROM `fn_lu_tab_set`;
+
+--
+-- Dumping data for table `cr_raptor_action_img`
+--
+REPLACE INTO `cr_raptor_action_img` VALUES ('CALENDAR','/static/fusion/raptor/img/Calendar-16x16.png');
+REPLACE INTO `cr_raptor_action_img` VALUES ('DELETE','/static/fusion/raptor/img/deleteicon.gif');
+
+--
+-- Dumping data for table `fn_app`
+--
+INSERT IGNORE INTO `fn_app` VALUES (1,'Default',null,'Some Default Description','Some Default Note',null,null,null,'ECPP','?',1,'okYTaDrhzibcbGVq5mjkVQ==','N','N',null,'Default',null,null,'ECOMP-PORTAL-INBOX');
+
+
+--
+-- Dumping data for table `fn_function`
+--
+INSERT INTO `fn_function` VALUES ('1','test role function','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='test role function';
+INSERT INTO `fn_function` VALUES ('doclib','Document Library','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Document Library';
+INSERT INTO `fn_function` VALUES ('doclib_admin','Document Library Admin','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Document Library Admin';
+INSERT INTO `fn_function` VALUES ('login','Login','url','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Login';
+INSERT INTO `fn_function` VALUES ('menu_admin','Admin Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Admin Menu';
+INSERT INTO `fn_function` VALUES ('menu_ajax','Ajax Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Ajax Menu';
+INSERT INTO `fn_function` VALUES ('menu_servicemodels','Browse SDC Service Instances','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Browse SDC Service Instances';
+INSERT INTO `fn_function` VALUES ('menu_concept','CoNCEPT','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='CoNCEPT';
+INSERT INTO `fn_function` VALUES ('menu_customer','Customer Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Customer Menu';
+INSERT INTO `fn_function` VALUES ('menu_customer_create','Customer Create','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Customer Create';
+INSERT INTO `fn_function` VALUES ('menu_doclib','Document Library Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Document Library Menu';
+INSERT INTO `fn_function` VALUES ('menu_feedback','Feedback Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Feedback Menu';
+INSERT INTO `fn_function` VALUES ('menu_help','Help Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Help Menu';
+INSERT INTO `fn_function` VALUES ('menu_home','Home Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Home Menu';
+INSERT INTO `fn_function` VALUES ('menu_itracker','iTracker Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='iTracker Menu';
+INSERT INTO `fn_function` VALUES ('menu_itracker_admin','Itracker Admin/Support menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Itracker Admin/Support menu';
+INSERT INTO `fn_function` VALUES ('menu_job','Job Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Job Menu';
+INSERT INTO `fn_function` VALUES ('menu_job_create','Job Create','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Job Create';
+INSERT INTO `fn_function` VALUES ('menu_job_designer','Process in Designer view','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Process in Designer view';
+INSERT INTO `fn_function` VALUES ('menu_logout','Logout Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Logout Menu';
+INSERT INTO `fn_function` VALUES ('menu_map','Map Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Map Menu';
+INSERT INTO `fn_function` VALUES ('menu_newserinstance','Create New Service Instance','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Create New Service Instance';
+INSERT INTO `fn_function` VALUES ('menu_notes','Notes Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Notes Menu';
+INSERT INTO `fn_function` VALUES ('menu_process','Process List','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Process List';
+INSERT INTO `fn_function` VALUES ('menu_profile','Profile Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Profile Menu';
+INSERT INTO `fn_function` VALUES ('menu_profile_create','Profile Create','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Profile Create';
+INSERT INTO `fn_function` VALUES ('menu_profile_import','Profile Import','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Profile Import';
+INSERT INTO `fn_function` VALUES ('menu_reports','Reports Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Reports Menu';
+INSERT INTO `fn_function` VALUES ('menu_sample','Sample Pages Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Sample Pages Menu';
+INSERT INTO `fn_function` VALUES ('menu_tab','Sample Tab Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Sample Tab Menu';
+INSERT INTO `fn_function` VALUES ('menu_task','Task Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Task Menu';
+INSERT INTO `fn_function` VALUES ('menu_task_search','Task Search','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Task Search';
+INSERT INTO `fn_function` VALUES ('menu_test','Test Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Test Menu';
+INSERT INTO `fn_function` VALUES ('menu_viewlog','Log Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Log Menu';
+INSERT INTO `fn_function` VALUES ('view_reports','View Raptor reports','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='View Raptor reports';
+INSERT INTO `fn_function` VALUES ('menu_searchexisting', 'Search for Existing Service Instances','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Search for Existing Service Instances';
+INSERT INTO `fn_function` VALUES ('menu_changemanagement','VNF Changes','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='VNF Changes';
+--INSERT INTO `fn_function` VALUES ('menu_testenvironment','Test Environments','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Test Environments';
+
+--
+-- Dumping data for table `fn_lu_activity`
+--
+REPLACE INTO `fn_lu_activity` VALUES ('add_child_role','add_child_role');
+REPLACE INTO `fn_lu_activity` VALUES ('add_role','add_role');
+REPLACE INTO `fn_lu_activity` VALUES ('add_role_function','add_role_function');
+REPLACE INTO `fn_lu_activity` VALUES ('add_user_role','add_user_role');
+REPLACE INTO `fn_lu_activity` VALUES ('login','Login');
+REPLACE INTO `fn_lu_activity` VALUES ('logout','Logout');
+REPLACE INTO `fn_lu_activity` VALUES ('mobile_login','Mobile Login');
+REPLACE INTO `fn_lu_activity` VALUES ('mobile_logout','Mobile Logout');
+REPLACE INTO `fn_lu_activity` VALUES ('remove_child_role','remove_child_role');
+REPLACE INTO `fn_lu_activity` VALUES ('remove_role','remove_role');
+REPLACE INTO `fn_lu_activity` VALUES ('remove_role_function','remove_role_function');
+REPLACE INTO `fn_lu_activity` VALUES ('remove_user_role','remove_user_role');
+
+--
+-- Dumping data for table `fn_lu_alert_method`
+--
+REPLACE INTO `fn_lu_alert_method` VALUES ('EMAIL','Email');
+REPLACE INTO `fn_lu_alert_method` VALUES ('FAX','Fax');
+REPLACE INTO `fn_lu_alert_method` VALUES ('PAGER','Pager');
+REPLACE INTO `fn_lu_alert_method` VALUES ('PHONE','Phone');
+REPLACE INTO `fn_lu_alert_method` VALUES ('SMS','SMS');
+
+--
+-- Dumping data for table `fn_lu_call_times`
+--
+REPLACE INTO `fn_lu_call_times` VALUES (1,20,'20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (2,40,'40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (3,60,'1 hr');
+REPLACE INTO `fn_lu_call_times` VALUES (4,80,'1 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (5,100,'1 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (6,120,'2 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (7,140,'2 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (8,160,'2 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (9,180,'3 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (10,200,'3 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (11,220,'3 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (12,240,'4 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (13,260,'4 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (14,280,'4 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (15,300,'5 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (16,320,'5 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (17,340,'5 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (18,360,'6 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (19,380,'6 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (20,400,'6 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (21,420,'7 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (22,440,'7 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (23,460,'7 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (24,480,'8 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (25,500,'8 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (26,520,'8 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (27,540,'9 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (28,560,'9 hr 20 min');
+REPLACE INTO `fn_lu_call_times` VALUES (29,580,'9 hr 40 min');
+REPLACE INTO `fn_lu_call_times` VALUES (30,600,'10 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (31,10,'10 min');
+REPLACE INTO `fn_lu_call_times` VALUES (32,5,'5 min');
+REPLACE INTO `fn_lu_call_times` VALUES (33,1200,'20 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (34,1800,'30 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (35,2400,'40 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (36,3000,'50 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (37,4200,'70 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (38,4800,'80 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (39,5400,'90 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (40,6000,'100 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (41,7200,'120 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (42,9600,'160 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (43,10800,'180 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (44,12000,'200 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (45,18000,'300 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (46,24000,'400 hrs');
+REPLACE INTO `fn_lu_call_times` VALUES (47,30000,'500 hrs');
+
+--
+-- Dumping data for table `fn_lu_country`
+--
+REPLACE INTO `fn_lu_country` VALUES ('AD','Andorra','Andorra',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AE','United Arab Emirates','United Arab Emirates',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AF','Afghanistan','Afghanistan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AG','Antigua and Barbuda','Antigua and Barbuda',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AI','Anguilla','Anguilla',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AL','Albania','Albania',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AM','Armenia','Armenia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AN','Netherlands Antilles','Netherlands Antilles',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AO','Angola','Angola',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AQ','Antarctica','Antarctica',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AR','Argentina','Argentina',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AS','American Samoa','American Samoa',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AT','Austria','Austria',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AU','Australia','Australia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AW','Aruba','Aruba',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('AZ','Azerbaidjan','Azerbaidjan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BA','Bosnia-Herzegovina','Bosnia-Herzegovina',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BB','Barbados','Barbados',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BD','Bangladesh','Bangladesh',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BE','Belgium','Belgium',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BF','Burkina Faso','Burkina Faso',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BG','Bulgaria','Bulgaria',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BH','Bahrain','Bahrain',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BI','Burundi','Burundi',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BJ','Benin','Benin',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BM','Bermuda','Bermuda',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BN','Brunei Darussalam','Brunei Darussalam',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BO','Bolivia','Bolivia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BR','Brazil','Brazil',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BS','Bahamas','Bahamas',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BT','Bhutan','Bhutan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BV','Bouvet Island','Bouvet Island',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BW','Botswana','Botswana',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BY','Belarus','Belarus',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('BZ','Belize','Belize',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CA','Canada','Canada',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CC','Cocos (Keeling) Islands','Cocos (Keeling) Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CF','Central African Republic','Central African Republic',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CG','Congo','Congo',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CH','Switzerland','Switzerland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CI','Ivory Coast (Cote D\'Ivoire)','Ivory Coast (Cote D\'Ivoire)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CK','Cook Islands','Cook Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CL','Chile','Chile',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CM','Cameroon','Cameroon',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CN','China','China','China');
+REPLACE INTO `fn_lu_country` VALUES ('CO','Colombia','Colombia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CR','Costa Rica','Costa Rica',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CS','Former Czechoslovakia','Former Czechoslovakia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CU','Cuba','Cuba',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CV','Cape Verde','Cape Verde',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CX','Christmas Island','Christmas Island',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CY','Cyprus','Cyprus',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('CZ','Czech Republic','Czech Republic',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('DE','Germany','Germany',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('DJ','Djibouti','Djibouti',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('DK','Denmark','Denmark',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('DM','Dominica','Dominica',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('DO','Dominican Republic','Dominican Republic',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('DZ','Algeria','Algeria',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('EC','Ecuador','Ecuador',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('EE','Estonia','Estonia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('EG','Egypt','Egypt',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('EH','Western Sahara','Western Sahara',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ER','Eritrea','Eritrea',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ES','Spain','Spain',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ET','Ethiopia','Ethiopia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FI','Finland','Finland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FJ','Fiji','Fiji',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FK','Falkland Islands','Falkland Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FM','Micronesia','Micronesia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FO','Faroe Islands','Faroe Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FR','France','France',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('FX','France (European Territory)','France (European Territory)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GA','Gabon','Gabon',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GB','Great Britain','Great Britain',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GD','Grenada','Grenada',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GE','Georgia','Georgia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GF','French Guyana','French Guyana',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GH','Ghana','Ghana',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GI','Gibraltar','Gibraltar',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GL','Greenland','Greenland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GM','Gambia','Gambia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GN','Guinea','Guinea',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GP','Guadeloupe (French)','Guadeloupe (French)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GQ','Equatorial Guinea','Equatorial Guinea',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GR','Greece','Greece',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GS','S. Georgia and S. Sandwich Isls.','S. Georgia and S. Sandwich Isls.',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GT','Guatemala','Guatemala',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GU','Guam (USA)','Guam (USA)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GW','Guinea Bissau','Guinea Bissau',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('GY','Guyana','Guyana',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('HK','Hong Kong','Hong Kong',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('HM','Heard and McDonald Islands','Heard and McDonald Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('HN','Honduras','Honduras',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('HR','Croatia','Croatia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('HT','Haiti','Haiti',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('HU','Hungary','Hungary',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ID','Indonesia','Indonesia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IE','Ireland','Ireland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IL','Israel','Israel',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IN','India','India',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IO','British Indian Ocean Territory','British Indian Ocean Territory',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IQ','Iraq','Iraq',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IR','Iran','Iran',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IS','Iceland','Iceland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('IT','Italy','Italy',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('JM','Jamaica','Jamaica',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('JO','Jordan','Jordan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('JP','Japan','Japan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KE','Kenya','Kenya',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KG','Kyrgyzstan','Kyrgyzstan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KH','Cambodia','Cambodia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KI','Kiribati','Kiribati',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KM','Comoros','Comoros',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KN','Saint Kitts and Nevis Anguilla','Saint Kitts and Nevis Anguilla',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KP','North Korea','North Korea',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KR','South Korea','South Korea',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KW','Kuwait','Kuwait',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KY','Cayman Islands','Cayman Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('KZ','Kazakhstan','Kazakhstan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LA','Laos','Laos',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LB','Lebanon','Lebanon',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LC','Saint Lucia','Saint Lucia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LI','Liechtenstein','Liechtenstein',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LK','Sri Lanka','Sri Lanka',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LR','Liberia','Liberia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LS','Lesotho','Lesotho',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LT','Lithuania','Lithuania',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LU','Luxembourg','Luxembourg',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LV','Latvia','Latvia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('LY','Libya','Libya',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MA','Morocco','Morocco',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MC','Monaco','Monaco',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MD','Moldavia','Moldavia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MG','Madagascar','Madagascar',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MH','Marshall Islands','Marshall Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MK','Macedonia','Macedonia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ML','Mali','Mali',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MM','Myanmar','Myanmar',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MN','Mongolia','Mongolia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MO','Macau','Macau',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MP','Northern Mariana Islands','Northern Mariana Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MQ','Martinique (French)','Martinique (French)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MR','Mauritania','Mauritania',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MS','Montserrat','Montserrat',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MT','Malta','Malta',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MU','Mauritius','Mauritius',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MV','Maldives','Maldives',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MW','Malawi','Malawi',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MX','Mexico','Mexico','Mexico');
+REPLACE INTO `fn_lu_country` VALUES ('MY','Malaysia','Malaysia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('MZ','Mozambique','Mozambique',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NA','Namibia','Namibia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NC','New Caledonia (French)','New Caledonia (French)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NE','Niger','Niger',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NF','Norfolk Island','Norfolk Island',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NG','Nigeria','Nigeria',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NI','Nicaragua','Nicaragua',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NL','Netherlands','Netherlands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NO','Norway','Norway',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NP','Nepal','Nepal',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NR','Nauru','Nauru',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NU','Niue','Niue',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('NZ','New Zealand','New Zealand',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('OM','Oman','Oman',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PA','Panama','Panama',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PE','Peru','Peru',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PF','Polynesia (French)','Polynesia (French)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PG','Papua New Guinea','Papua New Guinea',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PH','Philippines','Philippines',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PK','Pakistan','Pakistan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PL','Poland','Poland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PM','Saint Pierre and Miquelon','Saint Pierre and Miquelon',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PN','Pitcairn Island','Pitcairn Island',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PR','Puerto Rico','Puerto Rico',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PT','Portugal','Portugal',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PW','Palau','Palau',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('PY','Paraguay','Paraguay',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('QA','Qatar','Qatar',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('RE','Reunion (French)','Reunion (French)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('RO','Romania','Romania',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('RU','Russian Federation','Russian Federation',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('RW','Rwanda','Rwanda',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SA','Saudi Arabia','Saudi Arabia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SB','Solomon Islands','Solomon Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SC','Seychelles','Seychelles',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SD','Sudan','Sudan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SE','Sweden','Sweden',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SG','Singapore','Singapore',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SH','Saint Helena','Saint Helena',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SI','Slovenia','Slovenia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SJ','Svalbard and Jan Mayen Islands','Svalbard and Jan Mayen Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SK','Slovak Republic','Slovak Republic',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SL','Sierra Leone','Sierra Leone',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SM','San Marino','San Marino',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SN','Senegal','Senegal',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SO','Somalia','Somalia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SR','Suriname','Suriname',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ST','Saint Tome (Sao Tome) and Principe','Saint Tome (Sao Tome) and Principe',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SU','Former USSR','Former USSR',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SV','El Salvador','El Salvador',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SY','Syria','Syria',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('SZ','Swaziland','Swaziland',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TC','Turks and Caicos Islands','Turks and Caicos Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TD','Chad','Chad',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TF','French Southern Territories','French Southern Territories',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TG','Togo','Togo',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TH','Thailand','Thailand',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TJ','Tadjikistan','Tadjikistan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TK','Tokelau','Tokelau',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TM','Turkmenistan','Turkmenistan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TN','Tunisia','Tunisia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TO','Tonga','Tonga',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TP','East Timor','East Timor',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TR','Turkey','Turkey',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TT','Trinidad and Tobago','Trinidad and Tobago',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TV','Tuvalu','Tuvalu',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TW','Taiwan','Taiwan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('TZ','Tanzania','Tanzania',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('UA','Ukraine','Ukraine',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('UG','Uganda','Uganda',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('UK','United Kingdom','United Kingdom',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('UM','USA Minor Outlying Islands','USA Minor Outlying Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('US','United States','United States','USA');
+REPLACE INTO `fn_lu_country` VALUES ('UY','Uruguay','Uruguay',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('UZ','Uzbekistan','Uzbekistan',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VA','Vatican City State','Vatican City State',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VC','Saint Vincent and Grenadines','Saint Vincent and Grenadines',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VE','Venezuela','Venezuela',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VG','Virgin Islands (British)','Virgin Islands (British)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VI','Virgin Islands (USA)','Virgin Islands (USA)',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VN','Vietnam','Vietnam',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('VU','Vanuatu','Vanuatu',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('WF','Wallis and Futuna Islands','Wallis and Futuna Islands',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('WS','Samoa','Samoa',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('YE','Yemen','Yemen',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('YT','Mayotte','Mayotte',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('YU','Yugoslavia','Yugoslavia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ZA','South Africa','South Africa',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ZM','Zambia','Zambia',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ZR','Zaire','Zaire',NULL);
+REPLACE INTO `fn_lu_country` VALUES ('ZW','Zimbabwe','Zimbabwe',NULL);
+
+--
+-- Dumping data for table `fn_lu_menu_set`
+--
+INSERT INTO `fn_lu_menu_set` VALUES ('APP','Application Menu') ON DUPLICATE KEY UPDATE MENU_SET_NAME='Application Menu';
+
+--
+-- Dumping data for table `fn_lu_priority`
+--
+REPLACE INTO `fn_lu_priority` VALUES (10,'Low','Y',10);
+REPLACE INTO `fn_lu_priority` VALUES (20,'Normal','Y',20);
+REPLACE INTO `fn_lu_priority` VALUES (30,'High','Y',30);
+REPLACE INTO `fn_lu_priority` VALUES (40,'Urgent','Y',40);
+REPLACE INTO `fn_lu_priority` VALUES (50,'Fatal','Y',50);
+
+--
+-- Dumping data for table `fn_lu_state`
+--
+REPLACE INTO `fn_lu_state` VALUES ('AK','AK - Alaska');
+REPLACE INTO `fn_lu_state` VALUES ('AL','AL - Alabama');
+REPLACE INTO `fn_lu_state` VALUES ('AR','AR - Arkansas');
+REPLACE INTO `fn_lu_state` VALUES ('AZ','AZ - Arizona');
+REPLACE INTO `fn_lu_state` VALUES ('CA','CA - California');
+REPLACE INTO `fn_lu_state` VALUES ('CO','CO - Colorado');
+REPLACE INTO `fn_lu_state` VALUES ('CT','CT - Connecticut');
+REPLACE INTO `fn_lu_state` VALUES ('DC','DC - District Of Columbia');
+REPLACE INTO `fn_lu_state` VALUES ('DE','DE - Delaware');
+REPLACE INTO `fn_lu_state` VALUES ('FL','FL - Florida');
+REPLACE INTO `fn_lu_state` VALUES ('GA','GA - Georgia');
+REPLACE INTO `fn_lu_state` VALUES ('HI','HI - Hawaii');
+REPLACE INTO `fn_lu_state` VALUES ('IA','IA - Iowa');
+REPLACE INTO `fn_lu_state` VALUES ('ID','ID - Idaho');
+REPLACE INTO `fn_lu_state` VALUES ('IL','IL - Illinois');
+REPLACE INTO `fn_lu_state` VALUES ('IN','IN - Indiana');
+REPLACE INTO `fn_lu_state` VALUES ('KS','KS - Kansas');
+REPLACE INTO `fn_lu_state` VALUES ('KY','KY - Kentucky');
+REPLACE INTO `fn_lu_state` VALUES ('LA','LA - Louisiana');
+REPLACE INTO `fn_lu_state` VALUES ('MA','MA - Massachusetts');
+REPLACE INTO `fn_lu_state` VALUES ('MD','MD - Maryland');
+REPLACE INTO `fn_lu_state` VALUES ('ME','ME - Maine');
+REPLACE INTO `fn_lu_state` VALUES ('MI','MI - Michigan');
+REPLACE INTO `fn_lu_state` VALUES ('MN','MN - Minnesota');
+REPLACE INTO `fn_lu_state` VALUES ('MO','MO - Missouri');
+REPLACE INTO `fn_lu_state` VALUES ('MS','MS - Mississippi');
+REPLACE INTO `fn_lu_state` VALUES ('MT','MT - Montana');
+REPLACE INTO `fn_lu_state` VALUES ('NC','NC - North Carolina');
+REPLACE INTO `fn_lu_state` VALUES ('ND','ND - North Dakota');
+REPLACE INTO `fn_lu_state` VALUES ('NE','NE - Nebraska');
+REPLACE INTO `fn_lu_state` VALUES ('NH','NH - New Hampshire');
+REPLACE INTO `fn_lu_state` VALUES ('NJ','NJ - New Jersey');
+REPLACE INTO `fn_lu_state` VALUES ('NM','NM - New Mexico');
+REPLACE INTO `fn_lu_state` VALUES ('NV','NV - Nevada');
+REPLACE INTO `fn_lu_state` VALUES ('NY','NY - New York');
+REPLACE INTO `fn_lu_state` VALUES ('OH','OH - Ohio');
+REPLACE INTO `fn_lu_state` VALUES ('OK','OK - Oklahoma');
+REPLACE INTO `fn_lu_state` VALUES ('OR','OR - Oregon');
+REPLACE INTO `fn_lu_state` VALUES ('PA','PA - Pennsylvania');
+REPLACE INTO `fn_lu_state` VALUES ('PR','PR - Puerto Rico');
+REPLACE INTO `fn_lu_state` VALUES ('RI','RI - Rhode Island');
+REPLACE INTO `fn_lu_state` VALUES ('SC','SC - South Carolina');
+REPLACE INTO `fn_lu_state` VALUES ('SD','SD - South Dakota');
+REPLACE INTO `fn_lu_state` VALUES ('TN','TN - Tennessee');
+REPLACE INTO `fn_lu_state` VALUES ('TX','TX - Texas');
+REPLACE INTO `fn_lu_state` VALUES ('UT','UT - Utah');
+REPLACE INTO `fn_lu_state` VALUES ('VA','VA - Virginia');
+REPLACE INTO `fn_lu_state` VALUES ('VI','VI-Virgin Island');
+REPLACE INTO `fn_lu_state` VALUES ('VT','VT - Vermont');
+REPLACE INTO `fn_lu_state` VALUES ('WA','WA - Washington');
+REPLACE INTO `fn_lu_state` VALUES ('WI','WI - Wisconsin');
+REPLACE INTO `fn_lu_state` VALUES ('WV','WV - West Virginia');
+REPLACE INTO `fn_lu_state` VALUES ('WY','WY - Wyoming');
+
+--
+-- Dumping data for table `fn_lu_tab_set`
+--
+INSERT INTO `fn_lu_tab_set` VALUES ('APP','Application Tabs') ON DUPLICATE KEY UPDATE TAB_SET_NAME='Application Tabs';
+
+--
+-- Dumping data for table `fn_lu_timezone`
+--
+INSERT INTO `fn_lu_timezone` VALUES (10,'US/Eastern','US/Eastern') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Eastern', TIMEZONE_VALUE='US/Eastern';
+INSERT INTO `fn_lu_timezone` VALUES (20,'US/Central','US/Central') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Central', TIMEZONE_VALUE='US/Central';
+INSERT INTO `fn_lu_timezone` VALUES (30,'US/Mountain','US/Mountain') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Mountain', TIMEZONE_VALUE='US/Mountain';
+INSERT INTO `fn_lu_timezone` VALUES (40,'US/Arizona','America/Phoenix') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Arizona', TIMEZONE_VALUE='America/Phoenix';
+INSERT INTO `fn_lu_timezone` VALUES (50,'US/Pacific','US/Pacific') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Pacific', TIMEZONE_VALUE='US/Pacific';
+INSERT INTO `fn_lu_timezone` VALUES (60,'US/Alaska','US/Alaska') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Alaska', TIMEZONE_VALUE='US/Alaska';
+INSERT INTO `fn_lu_timezone` VALUES (70,'US/Hawaii','US/Hawaii') ON DUPLICATE KEY UPDATE TIMEZONE_NAME='US/Hawaii', TIMEZONE_VALUE='US/Hawaii';
+
+--
+-- Dumping data for table `fn_menu`
+--
+INSERT INTO `fn_menu` VALUES (1,'Root',NULL,10,NULL,'menu_home','N',NULL,NULL,NULL,NULL,'APP','N',NULL) ON DUPLICATE KEY UPDATE LABEL='Root', PARENT_ID=NULL, SORT_ORDER=10, ACTION=NULL, FUNCTION_CD='menu_home', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC=NULL;
+INSERT INTO `fn_menu` VALUES (2,'VID Home',1,10,'welcome.htm','menu_home','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='VID Home', PARENT_ID=1, SORT_ORDER=10, ACTION='welcome.htm', FUNCTION_CD='menu_home', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+
+INSERT INTO `fn_menu` VALUES (3,'Search for Existing Service Instances',1,10,'serviceModels.htm#/instances/services','menu_searchexisting','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Search for Existing Service Instances', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm#/instances/services', FUNCTION_CD='menu_searchexisting', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+INSERT INTO `fn_menu` VALUES (10,'Admin',1,110,'role_list.htm','menu_admin','Y',NULL,NULL,NULL,NULL,'APP','N','icon-settings') ON DUPLICATE KEY UPDATE LABEL='Admin', PARENT_ID=1, SORT_ORDER=110, ACTION='admin', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-settings';
+INSERT INTO `fn_menu` VALUES (13,'VID Logout',1,130,'app_logout.htm','menu_logout','N',NULL,NULL,NULL,NULL,'APP','N','icon-sign-out') ON DUPLICATE KEY UPDATE LABEL='VID Logout', PARENT_ID=1, SORT_ORDER=130, ACTION='app_logout.htm', FUNCTION_CD='menu_logout', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-sign-out';
+INSERT INTO `fn_menu` VALUES (42,'Browse SDC Service Models',1,10,'serviceModels.htm','menu_servicemodels','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Browse SDC Service Instances', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm', FUNCTION_CD='menu_servicemodels', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+INSERT INTO `fn_menu` VALUES (41,'Create New Service Instance',1,10,'serviceModels.htm#/instances/subscribers','menu_newserinstance','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Create New Service Instance', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm#/instances/subscribers', FUNCTION_CD='menu_newserinstance', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+INSERT INTO `fn_menu` VALUES (43,'View Log',1,10,'viewlog.htm','menu_viewlog','N',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='View Log', PARENT_ID=1, SORT_ORDER=10, ACTION='viewlog.htm', FUNCTION_CD='menu_viewlog', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+INSERT INTO `fn_menu` VALUES (101,'Roles',10,20,'admin','menu_admin','Y',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/users.png') ON DUPLICATE KEY UPDATE LABEL='Roles', PARENT_ID=10, SORT_ORDER=20, ACTION='admin', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/users.png';
+INSERT INTO `fn_menu` VALUES (102,'Role Functions',10,30,'admin#/role_function_list','menu_admin','Y',NULL,NULL,NULL,NULL,'APP','N',NULL) ON DUPLICATE KEY UPDATE LABEL='Role Functions', PARENT_ID=10, SORT_ORDER=30, ACTION='admin#/role_function_list', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC=NULL;
+INSERT INTO `fn_menu` VALUES (103,'Broadcast Messages',10,50,'admin#/broadcast_list','menu_admin','N',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/bubble.png') ON DUPLICATE KEY UPDATE LABEL='Broadcast Messages', PARENT_ID=10, SORT_ORDER=50, ACTION='admin#/broadcast_list', FUNCTION_CD='menu_admin', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/bubble.png';
+INSERT INTO `fn_menu` VALUES (105,'Cache Admin',10,40,'admin#/jcs_admin','menu_admin','N',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/cache.png') ON DUPLICATE KEY UPDATE LABEL='Cache Admin', PARENT_ID=10, SORT_ORDER=40, ACTION='admin#/jcs_admin', FUNCTION_CD='menu_admin', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/cache.png';
+INSERT INTO `fn_menu` VALUES (106,'Lock/Unlock Application',10,60,'application_lockout.htm','menu_admin','N',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/decrypted.png') ON DUPLICATE KEY UPDATE LABEL='Lock/Unlock Application', PARENT_ID=10, SORT_ORDER=60, ACTION='application_lockout.htm', FUNCTION_CD='menu_admin', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/decrypted.png';
+INSERT INTO `fn_menu` VALUES (108,'Usage',10,80,'admin#/usage_list','menu_admin','N',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/users.png') ON DUPLICATE KEY UPDATE LABEL='Usage', PARENT_ID=10, SORT_ORDER=80, ACTION='admin#/usage_list', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/users.png';
+INSERT INTO `fn_menu` VALUES (109, 'VNF Changes', 1, 11, 'serviceModels.htm#/change-management', 'menu_changemanagement', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', 'icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='VNF Changes', PARENT_ID=1, SORT_ORDER=11, ACTION='serviceModels.htm#/change-management', FUNCTION_CD='menu_changemanagement', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+--INSERT INTO `fn_menu` VALUES (110, 'Test Environments', 1, 12, 'serviceModels.htm#/testEnvironments', 'menu_testenvironment', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', 'icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Test Environments', PARENT_ID=1, SORT_ORDER=12, ACTION='serviceModels.htm#/testEnvironments', FUNCTION_CD='menu_testenvironment', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+--
+-- Dumping data for table `fn_restricted_url`
+--
+REPLACE INTO `fn_restricted_url` VALUES ('attachment.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('broadcast.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('file_upload.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('job.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('role.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('role_function.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('test.htm','menu_admin');
+REPLACE INTO `fn_restricted_url` VALUES ('serviceModels.htm','menu_servicemodels');
+REPLACE INTO `fn_restricted_url` VALUES ('async_test.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('chatWindow.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('contact_list.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('customer_dynamic_list.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('event.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('event_list.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('mobile_welcome.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('sample_map.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('template.jsp','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('welcome.htm','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('zkau','menu_home');
+REPLACE INTO `fn_restricted_url` VALUES ('itracker_assign.htm','menu_itracker');
+REPLACE INTO `fn_restricted_url` VALUES ('itracker_byassignee.htm','menu_itracker');
+REPLACE INTO `fn_restricted_url` VALUES ('itracker_create.htm','menu_itracker');
+REPLACE INTO `fn_restricted_url` VALUES ('itracker_update.htm','menu_itracker');
+REPLACE INTO `fn_restricted_url` VALUES ('manage_license.htm','menu_itracker');
+REPLACE INTO `fn_restricted_url` VALUES ('support_ticket.htm','menu_itracker');
+REPLACE INTO `fn_restricted_url` VALUES ('jbpm_designer.htm','menu_job_create');
+REPLACE INTO `fn_restricted_url` VALUES ('jbpm_drools.htm','menu_job_create');
+REPLACE INTO `fn_restricted_url` VALUES ('process_job.htm','menu_job_create');
+-- REPLACE INTO `fn_restricted_url` VALUES ('novamap_controller.htm','menu_map');
+REPLACE INTO `fn_restricted_url` VALUES ('createnewserviceinstance.htm','menu_newserinstance');
+REPLACE INTO `fn_restricted_url` VALUES ('profile.htm','menu_profile_create');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor.htm','menu_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor2.htm','menu_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor_blob_extract.htm','menu_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor_email_attachment.htm','menu_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor_search.htm','menu_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('report_list.htm','menu_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('gauge.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('gmap_controller.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('gmap_frame.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('map.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('map_download.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('map_grid_search.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('sample_animated_map.htm','menu_tab');
+-- REPLACE INTO `fn_restricted_url` VALUES ('sample_heat_map.htm','menu_tab');
+-- REPLACE INTO `fn_restricted_url` VALUES ('sample_heat_map_no_header.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('sample_map_2.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('sample_map_3.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('tab2_sub1.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('tab2_sub2_link1.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('tab2_sub2_link2.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('tab2_sub3.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('tab3.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('tab4.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('viewlog.htm','menu_viewlog');
+-- REPLACE INTO `fn_restricted_url` VALUES ('bd_optima.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('bd_optima_interactive.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('bd_p2t.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('grid_heatmap.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('hive.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('hiveconfig.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('hiveconfig_popup.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('hive_search.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('hive_search_popup.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('jbpmTestProcess.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('job_progress.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('mapreduce.htm','quantum_bd');
+-- REPLACE INTO `fn_restricted_url` VALUES ('mapreduce_search.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor.htm','view_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('raptor_blob_extract.htm','view_reports');
+REPLACE INTO `fn_restricted_url` VALUES ('serviceModels.htm','menu_servicemodels');
+--
+-- Dumping data for table `fn_role`
+--
+INSERT INTO `fn_role` VALUES (1,'System Administrator','Y',1) ON DUPLICATE KEY UPDATE ROLE_NAME='System Administrator', ACTIVE_YN='Y', PRIORITY=1;
+INSERT INTO `fn_role` VALUES (16,'Standard User','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Standard User', ACTIVE_YN='Y', PRIORITY=5;
+
+--
+-- Dumping data for table `fn_role_composite`
+--
+REPLACE INTO `fn_role_composite` VALUES (1,16);
+
+--
+-- Dumping data for table `fn_role_function`
+--
+REPLACE INTO `fn_role_function` VALUES (1,'doclib');
+REPLACE INTO `fn_role_function` VALUES (1,'doclib_admin');
+REPLACE INTO `fn_role_function` VALUES (1,'login');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_admin');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_ajax');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_servicemodels');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_customer');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_customer_create');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_feedback');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_help');
+-- REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig');
+-- REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig_create');
+-- REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig_search');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_home');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_itracker');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_itracker_admin');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_job');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_job_create');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_logout');
+-- REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce');
+-- REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce_create');
+-- REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce_search');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_newserinstance');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_notes');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_process');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_profile');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_profile_create');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_profile_import');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_reports');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_sample');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_tab');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_test');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_viewlog');
+-- REPLACE INTO `fn_role_function` VALUES (1,'quantum_bd');
+REPLACE INTO `fn_role_function` VALUES (16,'login');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_ajax');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_servicemodels');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_customer');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_customer_create');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_home');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_itracker');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_logout');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_map');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_newserinstance');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_profile');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_reports');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_tab');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_viewlog');
+-- REPLACE INTO `fn_role_function` VALUES (16,'quantum_bd');
+REPLACE INTO `fn_role_function` VALUES ('1', 'menu_searchexisting');
+REPLACE INTO `fn_role_function` VALUES ('16', 'menu_searchexisting');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_changemanagement');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_changemanagement');
+--REPLACE INTO `fn_role_function` VALUES (1,'menu_testenvironment');
+--REPLACE INTO `fn_role_function` VALUES (16,'menu_testenvironment');
+
+update fn_menu set active_yn = 'Y' where label = 'Admin';
+update fn_menu set active_yn = 'Y' where label = 'Root';
+update fn_menu set action = 'admin' where label = 'Admin';
+
+--
+-- Dumping data for table `fn_tab`
+--
+INSERT INTO `fn_tab` VALUES ('TAB1','Tab 1','Tab 1 Information','tab1.htm','menu_tab','Y',10,NULL,'APP') ON DUPLICATE KEY UPDATE TAB_NAME='Tab 1', TAB_DESCR='Tab 1 Information', ACTION='tab1.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=10, PARENT_TAB_CD=NULL, TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB2','Tab 2','Tab 2 Information','tab2_sub1.htm','menu_tab','Y',20,NULL,'APP') ON DUPLICATE KEY UPDATE TAB_NAME='Tab 2', TAB_DESCR='Tab 2 Information', ACTION='tab2_sub1.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=20, PARENT_TAB_CD=NULL, TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB2_SUB1','Sub Tab 1','Sub Tab 1 Information','tab2_sub1.htm','menu_tab','Y',10,'TAB2','APP') ON DUPLICATE KEY UPDATE TAB_NAME='Sub Tab 1', TAB_DESCR='Sub Tab 1 Information', ACTION='tab2_sub1.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=10, PARENT_TAB_CD='TAB2', TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB2_SUB1_S1','Left Tab 1','Sub - Sub Tab 1 Information','tab2_sub1.htm','menu_tab','Y',10,'TAB2_SUB1','APP') ON DUPLICATE KEY UPDATE TAB_NAME='Left Tab 1', TAB_DESCR='Sub - Sub Tab 1 Information', ACTION='tab2_sub1.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=10, PARENT_TAB_CD='TAB2_SUB1', TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB2_SUB2','Sub Tab 2','Sub Tab 2 Information','tab2_sub2.htm','menu_tab','Y',20,'TAB2','APP') ON DUPLICATE KEY UPDATE TAB_NAME='Sub Tab 2', TAB_DESCR='Sub Tab 2 Information', ACTION='tab2_sub2.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=20, PARENT_TAB_CD='TAB2', TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB2_SUB3','Sub Tab 3','Sub Tab 3 Information','tab2_sub3.htm','menu_tab','Y',30,'TAB2','APP') ON DUPLICATE KEY UPDATE TAB_NAME='Sub Tab 3', TAB_DESCR='Sub Tab 3 Information', ACTION='tab2_sub3.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=30, PARENT_TAB_CD='TAB2', TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB3','Tab 3','Tab 3 Information','tab3.htm','menu_tab','Y',30,NULL,'APP') ON DUPLICATE KEY UPDATE TAB_NAME='Tab 3', TAB_DESCR='Tab 3 Information', ACTION='tab3.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=30, PARENT_TAB_CD=NULL, TAB_SET_CD='APP';
+INSERT INTO `fn_tab` VALUES ('TAB4','Tab 4','Tab 4 Information','tab4.htm','menu_tab','Y',40,NULL,'APP') ON DUPLICATE KEY UPDATE TAB_NAME='Tab 4', TAB_DESCR='Tab 4 Information', ACTION='tab4.htm', FUNCTION_CD='menu_tab', ACTIVE_YN='Y', SORT_ORDER=40, PARENT_TAB_CD=NULL, TAB_SET_CD='APP';
+
+--
+-- Dumping data for table `fn_tab_selected`
+--
+REPLACE INTO `fn_tab_selected` VALUES ('TAB1','tab1');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2','tab2_sub1');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2','tab2_sub2');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2','tab2_sub3');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2_SUB1','tab2_sub1');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2_SUB1_S1','tab2_sub1');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2_SUB2','tab2_sub2');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB2_SUB3','tab2_sub3');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB3','tab3');
+REPLACE INTO `fn_tab_selected` VALUES ('TAB4','tab4');
+
+
+--
+-- Dumping data for table `fn_user`
+--
+INSERT IGNORE `fn_user` VALUES (1,null,null,'Demo',null,'User',null,null,null,null,null,null,null,'demo',null,'demo','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (2,null,null,'vid1',null,'User',null,null,null,null,null,null,null,'vid1',null,'vid1','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (3,null,null,'vid2',null,'User',null,null,null,null,null,null,null,'vid2',null,'vid2','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (4,null,null,'vid3',null,'User',null,null,null,null,null,null,null,'vid3',null,'vid3','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (5,null,null,'vid4',null,'User',null,null,null,null,null,null,null,'vid4',null,'vid4','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+
+INSERT IGNORE `fn_user_role` VALUES (1,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (2,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (3,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (4,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (5,1,NULL,1);
diff --git a/onap-enabler-infra/src/main/resources/osam-core-pre-init.sql b/onap-enabler-infra/src/main/resources/osam-core-pre-init.sql
new file mode 100644
index 0000000..53740d5
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/osam-core-pre-init.sql
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+CREATE TABLE IF NOT EXISTS `osam_core`.`schema_info` (
+ `SCHEMA_ID` VARCHAR(25) NOT NULL,
+ `SCHEMA_DESC` VARCHAR(75) NOT NULL,
+ `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
+ `CONNECTION_URL` VARCHAR(200) NOT NULL,
+ `USER_NAME` VARCHAR(45) NOT NULL,
+ `PASSWORD` VARCHAR(45) NULL DEFAULT NULL,
+ `DRIVER_CLASS` VARCHAR(100) NOT NULL,
+ `MIN_POOL_SIZE` INT(11) NOT NULL,
+ `MAX_POOL_SIZE` INT(11) NOT NULL,
+ `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
diff --git a/onap-enabler-infra/src/main/resources/osam-core-schema.sql b/onap-enabler-infra/src/main/resources/osam-core-schema.sql
new file mode 100644
index 0000000..4a2e17e
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/osam-core-schema.sql
@@ -0,0 +1,1324 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+-- ----------------------------------------------------------------------------
+-- MySQL Workbench Migration
+-- Migrated Schemata: osam_core
+-- Source Schemata: ecomp_sd
+-- Created: Sun Nov 13 08:58:53 2016
+-- Workbench Version: 6.3.6
+-- ----------------------------------------------------------------------------
+
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------------------------------------------------------
+-- Schema osam_core
+-- ----------------------------------------------------------------------------
+CREATE SCHEMA IF NOT EXISTS `osam_core` ;
+
+USE osam_core;
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_favorite_reports
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_favorite_reports` (
+ `USER_ID` INT(11) NOT NULL,
+ `REP_ID` INT(11) NOT NULL,
+PRIMARY KEY (`USER_ID`, `REP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_filehist_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_filehist_log` (
+ `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+ `URL` VARCHAR(4000) NULL DEFAULT NULL,
+ `NOTES` VARCHAR(3500) NULL DEFAULT NULL,
+ `RUN_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_folder
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_folder` (
+ `FOLDER_ID` INT(11) NOT NULL,
+ `FOLDER_NAME` VARCHAR(50) NOT NULL,
+ `DESCR` VARCHAR(500) NULL DEFAULT NULL,
+ `CREATE_ID` INT(11) NOT NULL,
+ `CREATE_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `PARENT_FOLDER_ID` INT(11) NULL DEFAULT NULL,
+ `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+PRIMARY KEY (`FOLDER_ID`),
+INDEX `FK_PARENT_KEY_CR_FOLDER` (`PARENT_FOLDER_ID` ASC),
+CONSTRAINT `FK_PARENT_KEY_CR_FOLDER`
+FOREIGN KEY (`PARENT_FOLDER_ID`)
+REFERENCES `osam_core`.`cr_folder` (`FOLDER_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_folder_access
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_folder_access` (
+ `FOLDER_ACCESS_ID` DECIMAL(11,0) NOT NULL,
+ `FOLDER_ID` DECIMAL(11,0) NOT NULL,
+ `ORDER_NO` DECIMAL(11,0) NOT NULL,
+ `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `READ_ONLY_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+PRIMARY KEY (`FOLDER_ACCESS_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_hist_user_map
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_hist_user_map` (
+ `HIST_ID` INT(11) NOT NULL,
+ `USER_ID` INT(11) NOT NULL,
+PRIMARY KEY (`HIST_ID`, `USER_ID`),
+INDEX `SYS_C0014617` (`USER_ID` ASC),
+CONSTRAINT `SYS_C0014616`
+FOREIGN KEY (`HIST_ID`)
+REFERENCES `osam_core`.`cr_report_file_history` (`HIST_ID`),
+CONSTRAINT `SYS_C0014617`
+FOREIGN KEY (`USER_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_lu_file_type
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_lu_file_type` (
+ `LOOKUP_ID` DECIMAL(2,0) NOT NULL,
+ `LOOKUP_DESCR` VARCHAR(255) NOT NULL,
+ `ACTIVE_YN` CHAR(1) NULL DEFAULT 'Y',
+ `ERROR_CODE` DECIMAL(11,0) NULL DEFAULT NULL,
+PRIMARY KEY (`LOOKUP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_raptor_action_img
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_raptor_action_img` (
+ `IMAGE_ID` VARCHAR(100) NOT NULL,
+ `IMAGE_LOC` VARCHAR(400) NULL DEFAULT NULL,
+PRIMARY KEY (`IMAGE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_raptor_pdf_img
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_raptor_pdf_img` (
+ `IMAGE_ID` VARCHAR(100) NOT NULL,
+ `IMAGE_LOC` VARCHAR(400) NULL DEFAULT NULL,
+PRIMARY KEY (`IMAGE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_remote_schema_info
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_remote_schema_info` (
+ `SCHEMA_PREFIX` VARCHAR(5) NOT NULL,
+ `SCHEMA_DESC` VARCHAR(75) NOT NULL,
+ `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
+PRIMARY KEY (`SCHEMA_PREFIX`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report` (
+ `REP_ID` DECIMAL(11,0) NOT NULL,
+ `TITLE` VARCHAR(100) NOT NULL,
+ `DESCR` VARCHAR(255) NULL DEFAULT NULL,
+ `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+ `REPORT_XML` TEXT NULL DEFAULT NULL,
+ `CREATE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `CREATE_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MAINT_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `MAINT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MENU_ID` VARCHAR(500) NULL DEFAULT NULL,
+ `MENU_APPROVED_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+ `OWNER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `FOLDER_ID` INT(11) NULL DEFAULT '0',
+ `DASHBOARD_TYPE_YN` VARCHAR(1) NULL DEFAULT 'N',
+ `DASHBOARD_YN` VARCHAR(1) NULL DEFAULT 'N',
+PRIMARY KEY (`REP_ID`),
+INDEX `CR_REPORT_CREATE_IDPUBLIC_YNTITLE` (`CREATE_ID` ASC, `PUBLIC_YN` ASC, `TITLE` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_access
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_access` (
+ `REP_ID` DECIMAL(11,0) NOT NULL,
+ `ORDER_NO` DECIMAL(11,0) NOT NULL,
+ `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `READ_ONLY_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+PRIMARY KEY (`REP_ID`, `ORDER_NO`),
+CONSTRAINT `FK_CR_REPOR_REF_8550_CR_REPOR`
+FOREIGN KEY (`REP_ID`)
+REFERENCES `osam_core`.`cr_report` (`REP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_dwnld_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_dwnld_log` (
+ `USER_ID` DECIMAL(11,0) NOT NULL,
+ `REP_ID` INT(11) NOT NULL,
+ `FILE_NAME` VARCHAR(100) NOT NULL,
+ `DWNLD_START_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `RECORD_READY_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `FILTER_PARAMS` VARCHAR(2000) NULL DEFAULT NULL)
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_email_sent_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_email_sent_log` (
+ `LOG_ID` INT(11) NOT NULL,
+ `SCHEDULE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `GEN_KEY` VARCHAR(25) NOT NULL,
+ `REP_ID` DECIMAL(11,0) NOT NULL,
+ `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `SENT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `ACCESS_FLAG` VARCHAR(1) NOT NULL DEFAULT 'Y',
+ `TOUCH_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (`LOG_ID`),
+INDEX `FK_CR_REPORT_REP_ID` (`REP_ID` ASC),
+CONSTRAINT `FK_CR_REPORT_REP_ID`
+FOREIGN KEY (`REP_ID`)
+REFERENCES `osam_core`.`cr_report` (`REP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_file_history
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_file_history` (
+ `HIST_ID` INT(11) NOT NULL,
+ `SCHED_USER_ID` DECIMAL(11,0) NOT NULL,
+ `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+ `USER_ID` DECIMAL(11,0) NOT NULL,
+ `REP_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `RUN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `RECURRENCE` VARCHAR(50) NULL DEFAULT NULL,
+ `FILE_TYPE_ID` DECIMAL(2,0) NULL DEFAULT NULL,
+ `FILE_NAME` VARCHAR(80) NULL DEFAULT NULL,
+ `FILE_BLOB` BLOB NULL DEFAULT NULL,
+ `FILE_SIZE` DECIMAL(11,0) NULL DEFAULT NULL,
+ `RAPTOR_URL` VARCHAR(4000) NULL DEFAULT NULL,
+ `ERROR_YN` CHAR(1) NULL DEFAULT 'N',
+ `ERROR_CODE` DECIMAL(11,0) NULL DEFAULT NULL,
+ `DELETED_YN` CHAR(1) NULL DEFAULT 'N',
+ `DELETED_BY` DECIMAL(38,0) NULL DEFAULT NULL,
+PRIMARY KEY (`HIST_ID`),
+INDEX `SYS_C0014614` (`FILE_TYPE_ID` ASC),
+INDEX `SYS_C0014615` (`REP_ID` ASC),
+CONSTRAINT `SYS_C0014614`
+FOREIGN KEY (`FILE_TYPE_ID`)
+REFERENCES `osam_core`.`cr_lu_file_type` (`LOOKUP_ID`),
+CONSTRAINT `SYS_C0014615`
+FOREIGN KEY (`REP_ID`)
+REFERENCES `osam_core`.`cr_report` (`REP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_log` (
+ `REP_ID` DECIMAL(11,0) NOT NULL,
+ `LOG_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `USER_ID` DECIMAL(11,0) NOT NULL,
+ `ACTION` VARCHAR(2000) NOT NULL,
+ `ACTION_VALUE` VARCHAR(50) NULL DEFAULT NULL,
+ `FORM_FIELDS` VARCHAR(4000) NULL DEFAULT NULL,
+INDEX `FK_CR_REPOR_REF_17645_CR_REPOR` (`REP_ID` ASC),
+CONSTRAINT `FK_CR_REPOR_REF_17645_CR_REPOR`
+FOREIGN KEY (`REP_ID`)
+REFERENCES `osam_core`.`cr_report` (`REP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_schedule
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_schedule` (
+ `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+ `SCHED_USER_ID` DECIMAL(11,0) NOT NULL,
+ `REP_ID` DECIMAL(11,0) NOT NULL,
+ `ENABLED_YN` VARCHAR(1) NOT NULL,
+ `START_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `END_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `RUN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `RECURRENCE` VARCHAR(50) NULL DEFAULT NULL,
+ `CONDITIONAL_YN` VARCHAR(1) NOT NULL,
+ `CONDITION_SQL` VARCHAR(4000) NULL DEFAULT NULL,
+ `NOTIFY_TYPE` INT(11) NULL DEFAULT '0',
+ `MAX_ROW` INT(11) NULL DEFAULT '1000',
+ `INITIAL_FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
+ `PROCESSED_FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
+ `FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
+ `CONDITION_LARGE_SQL` TEXT NULL DEFAULT NULL,
+ `ENCRYPT_YN` CHAR(1) NULL DEFAULT 'N',
+ `ATTACHMENT_YN` CHAR(1) NULL DEFAULT 'Y',
+PRIMARY KEY (`SCHEDULE_ID`),
+INDEX `FK_CR_REPOR_REF_14707_CR_REPOR` (`REP_ID` ASC),
+CONSTRAINT `FK_CR_REPOR_REF_14707_CR_REPOR`
+FOREIGN KEY (`REP_ID`)
+REFERENCES `osam_core`.`cr_report` (`REP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_schedule_users
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_schedule_users` (
+ `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+ `REP_ID` DECIMAL(11,0) NOT NULL,
+ `USER_ID` DECIMAL(11,0) NOT NULL,
+ `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `ORDER_NO` DECIMAL(11,0) NOT NULL,
+PRIMARY KEY (`SCHEDULE_ID`, `REP_ID`, `USER_ID`, `ORDER_NO`),
+CONSTRAINT `FK_CR_REPOR_REF_14716_CR_REPOR`
+FOREIGN KEY (`SCHEDULE_ID`)
+REFERENCES `osam_core`.`cr_report_schedule` (`SCHEDULE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_report_template_map
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_report_template_map` (
+ `REPORT_ID` INT(11) NOT NULL,
+ `TEMPLATE_FILE` VARCHAR(200) NULL DEFAULT NULL,
+PRIMARY KEY (`REPORT_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_schedule_activity_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_schedule_activity_log` (
+ `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+ `URL` VARCHAR(4000) NULL DEFAULT NULL,
+ `NOTES` VARCHAR(2000) NULL DEFAULT NULL,
+ `RUN_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_table_join
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_table_join` (
+ `SRC_TABLE_NAME` VARCHAR(30) NOT NULL,
+ `DEST_TABLE_NAME` VARCHAR(30) NOT NULL,
+ `JOIN_EXPR` VARCHAR(500) NOT NULL,
+INDEX `CR_TABLE_JOIN_DEST_TABLE_NAME` (`DEST_TABLE_NAME` ASC),
+INDEX `CR_TABLE_JOIN_SRC_TABLE_NAME` (`SRC_TABLE_NAME` ASC),
+CONSTRAINT `FK_CR_TABLE_REF_311_CR_TAB`
+FOREIGN KEY (`SRC_TABLE_NAME`)
+REFERENCES `osam_core`.`cr_table_source` (`TABLE_NAME`),
+CONSTRAINT `FK_CR_TABLE_REF_315_CR_TAB`
+FOREIGN KEY (`DEST_TABLE_NAME`)
+REFERENCES `osam_core`.`cr_table_source` (`TABLE_NAME`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_table_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_table_role` (
+ `TABLE_NAME` VARCHAR(30) NOT NULL,
+ `ROLE_ID` DECIMAL(11,0) NOT NULL,
+PRIMARY KEY (`TABLE_NAME`, `ROLE_ID`),
+CONSTRAINT `FK_CR_TABLE_REF_32384_CR_TABLE`
+FOREIGN KEY (`TABLE_NAME`)
+REFERENCES `osam_core`.`cr_table_source` (`TABLE_NAME`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.cr_table_source
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`cr_table_source` (
+ `TABLE_NAME` VARCHAR(30) NOT NULL,
+ `DISPLAY_NAME` VARCHAR(30) NOT NULL,
+ `PK_FIELDS` VARCHAR(200) NULL DEFAULT NULL,
+ `WEB_VIEW_ACTION` VARCHAR(50) NULL DEFAULT NULL,
+ `LARGE_DATA_SOURCE_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+ `FILTER_SQL` VARCHAR(4000) NULL DEFAULT NULL,
+ `SOURCE_DB` VARCHAR(50) NULL DEFAULT NULL,
+PRIMARY KEY (`TABLE_NAME`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_portal.fn_app
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_app` (
+ `APP_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `APP_NAME` VARCHAR(100) NOT NULL DEFAULT '?',
+ `APP_IMAGE_URL` VARCHAR(256) NULL DEFAULT NULL,
+ `APP_DESCRIPTION` VARCHAR(512) NULL DEFAULT NULL,
+ `APP_NOTES` VARCHAR(4096) NULL DEFAULT NULL,
+ `APP_URL` VARCHAR(256) NULL DEFAULT NULL,
+ `APP_ALTERNATE_URL` VARCHAR(256) NULL DEFAULT NULL,
+ `APP_REST_ENDPOINT` VARCHAR(2000) NULL DEFAULT NULL,
+ `ML_APP_NAME` VARCHAR(50) NOT NULL DEFAULT '?',
+ `ML_APP_ADMIN_ID` VARCHAR(7) NOT NULL DEFAULT '?',
+ `MOTS_ID` INT(11) NULL DEFAULT NULL,
+ `APP_PASSWORD` VARCHAR(256) NOT NULL DEFAULT '?',
+ `OPEN` CHAR(1) NULL DEFAULT 'N',
+ `ENABLED` CHAR(1) NULL DEFAULT 'Y',
+ `THUMBNAIL` MEDIUMBLOB NULL DEFAULT NULL,
+ `APP_USERNAME` VARCHAR(50) NULL DEFAULT NULL,
+ `UEB_KEY` VARCHAR(256) NULL DEFAULT NULL,
+ `UEB_SECRET` VARCHAR(256) NULL DEFAULT NULL,
+ `UEB_TOPIC_NAME` VARCHAR(256) NULL DEFAULT NULL,
+PRIMARY KEY (`APP_ID`))
+ ENGINE = InnoDB
+ AUTO_INCREMENT = 2
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_app_mme_cpu
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_app_mme_cpu` (
+ `MME` VARCHAR(200) NULL DEFAULT NULL,
+ `YEARMONTH` INT(11) NULL DEFAULT NULL,
+ `SCTP_CPU` INT(11) NULL DEFAULT NULL,
+ `AP_CPU` INT(11) NULL DEFAULT NULL,
+ `DP_CPU` INT(11) NULL DEFAULT NULL,
+ `ROUTER_CPU` INT(11) NULL DEFAULT NULL,
+ `PEB_CPU` INT(11) NULL DEFAULT NULL,
+ `SAU` INT(11) NULL DEFAULT NULL)
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_audit_action
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_audit_action` (
+ `AUDIT_ACTION_ID` INT(11) NOT NULL,
+ `CLASS_NAME` VARCHAR(500) NOT NULL,
+ `METHOD_NAME` VARCHAR(50) NOT NULL,
+ `AUDIT_ACTION_CD` VARCHAR(20) NOT NULL,
+ `AUDIT_ACTION_DESC` VARCHAR(200) NULL DEFAULT NULL,
+ `ACTIVE_YN` VARCHAR(1) NULL DEFAULT NULL,
+PRIMARY KEY (`AUDIT_ACTION_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_audit_action_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_audit_action_log` (
+ `AUDIT_LOG_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `AUDIT_ACTION_CD` VARCHAR(200) NULL DEFAULT NULL,
+ `ACTION_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `CLASS_NAME` VARCHAR(100) NULL DEFAULT NULL,
+ `METHOD_NAME` VARCHAR(50) NULL DEFAULT NULL,
+ `SUCCESS_MSG` VARCHAR(20) NULL DEFAULT NULL,
+ `ERROR_MSG` VARCHAR(500) NULL DEFAULT NULL,
+PRIMARY KEY (`AUDIT_LOG_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_audit_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_audit_log` (
+ `LOG_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `USER_ID` INT(11) NOT NULL,
+ `ACTIVITY_CD` VARCHAR(50) NOT NULL,
+ `AUDIT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `COMMENTS` VARCHAR(1000) NULL DEFAULT NULL,
+ `AFFECTED_RECORD_ID_BK` VARCHAR(500) NULL DEFAULT NULL,
+ `AFFECTED_RECORD_ID` VARCHAR(4000) NULL DEFAULT NULL,
+PRIMARY KEY (`LOG_ID`),
+INDEX `FN_AUDIT_LOG_ACTIVITY_CD` (`ACTIVITY_CD` ASC),
+INDEX `FN_AUDIT_LOG_USER_ID` (`USER_ID` ASC),
+CONSTRAINT `FK_FN_AUDIT_REF_205_FN_LU_AC`
+FOREIGN KEY (`ACTIVITY_CD`)
+REFERENCES `osam_core`.`fn_lu_activity` (`ACTIVITY_CD`),
+CONSTRAINT `FK_FN_AUDIT_REF_209_FN_USER`
+FOREIGN KEY (`USER_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_broadcast_message
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_broadcast_message` (
+ `MESSAGE_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `MESSAGE_TEXT` VARCHAR(1000) NOT NULL,
+ `MESSAGE_LOCATION_ID` DECIMAL(11,0) NOT NULL,
+ `BROADCAST_START_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `BROADCAST_END_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `ACTIVE_YN` CHAR(1) NOT NULL DEFAULT 'Y',
+ `SORT_ORDER` DECIMAL(4,0) NOT NULL,
+ `BROADCAST_SITE_CD` VARCHAR(50) NULL DEFAULT NULL,
+PRIMARY KEY (`MESSAGE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_chat_logs
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_chat_logs` (
+ `CHAT_LOG_ID` INT(11) NOT NULL,
+ `CHAT_ROOM_ID` INT(11) NULL DEFAULT NULL,
+ `USER_ID` INT(11) NULL DEFAULT NULL,
+ `MESSAGE` VARCHAR(1000) NULL DEFAULT NULL,
+ `MESSAGE_DATE_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+PRIMARY KEY (`CHAT_LOG_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_chat_room
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_chat_room` (
+ `CHAT_ROOM_ID` INT(11) NOT NULL,
+ `NAME` VARCHAR(50) NOT NULL,
+ `DESCRIPTION` VARCHAR(500) NULL DEFAULT NULL,
+ `OWNER_ID` INT(11) NULL DEFAULT NULL,
+ `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `UPDATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (`CHAT_ROOM_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_chat_users
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_chat_users` (
+ `CHAT_ROOM_ID` INT(11) NULL DEFAULT NULL,
+ `USER_ID` INT(11) NULL DEFAULT NULL,
+ `LAST_ACTIVITY_DATE_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `CHAT_STATUS` VARCHAR(20) NULL DEFAULT NULL,
+ `ID` INT(11) NOT NULL,
+PRIMARY KEY (`ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_datasource
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_datasource` (
+ `ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `NAME` VARCHAR(50) NULL DEFAULT NULL,
+ `DRIVER_NAME` VARCHAR(256) NULL DEFAULT NULL,
+ `SERVER` VARCHAR(256) NULL DEFAULT NULL,
+ `PORT` INT(11) NULL DEFAULT NULL,
+ `USER_NAME` VARCHAR(256) NULL DEFAULT NULL,
+ `PASSWORD` VARCHAR(256) NULL DEFAULT NULL,
+ `URL` VARCHAR(256) NULL DEFAULT NULL,
+ `MIN_POOL_SIZE` INT(11) NULL DEFAULT NULL,
+ `MAX_POOL_SIZE` INT(11) NULL DEFAULT NULL,
+ `ADAPTER_ID` INT(11) NULL DEFAULT NULL,
+ `DS_TYPE` VARCHAR(20) NULL DEFAULT NULL,
+PRIMARY KEY (`ID`))
+ ENGINE = InnoDB
+ AUTO_INCREMENT = 4
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_function
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_function` (
+ `FUNCTION_CD` VARCHAR(30) NOT NULL,
+ `FUNCTION_NAME` VARCHAR(50) NOT NULL,
+ `type` VARCHAR(20) NOT NULL,
+ `action` VARCHAR(20) NOT NULL,
+PRIMARY KEY (`FUNCTION_CD`),
+CONSTRAINT `function` UNIQUE (FUNCTION_CD,TYPE,ACTION))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_license
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_license` (
+ `id` DECIMAL(11,0) NOT NULL,
+ `app_id` DECIMAL(11,0) NOT NULL,
+ `ip_address` VARCHAR(100) NOT NULL,
+ `quantum_version_id` DECIMAL(11,0) NOT NULL,
+ `created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `created_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `modified_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `end_date` TIMESTAMP NOT NULL DEFAULT '2036-01-19 03:14:07',
+PRIMARY KEY (`id`),
+INDEX `fn_license_r02` (`quantum_version_id` ASC),
+CONSTRAINT `fn_license_r02`
+FOREIGN KEY (`quantum_version_id`)
+REFERENCES `osam_core`.`fn_license_version` (`id`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_license_app
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_license_app` (
+ `id` DECIMAL(11,0) NOT NULL,
+ `app_name` VARCHAR(100) NOT NULL,
+ `ctxt_name` VARCHAR(100) NULL DEFAULT NULL,
+INDEX `fn_license_app_ID` (`id` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_license_contact
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_license_contact` (
+ `id` INT(11) NOT NULL,
+ `license_id` INT(11) NULL DEFAULT NULL,
+ `sbcid` VARCHAR(20) NULL DEFAULT NULL,
+PRIMARY KEY (`id`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_license_history
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_license_history` (
+ `license_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `app_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `ip_address` VARCHAR(100) NULL DEFAULT NULL,
+ `quantum_version_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `created_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `modified_id` DECIMAL(11,0) NULL DEFAULT NULL,
+ `id` DECIMAL(11,0) NOT NULL,
+PRIMARY KEY (`id`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_license_version
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_license_version` (
+ `id` DECIMAL(11,0) NOT NULL,
+ `quantum_version` VARCHAR(25) NULL DEFAULT NULL,
+PRIMARY KEY (`id`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_activity
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_activity` (
+ `ACTIVITY_CD` VARCHAR(50) NOT NULL,
+ `ACTIVITY` VARCHAR(50) NOT NULL,
+PRIMARY KEY (`ACTIVITY_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_alert_method
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_alert_method` (
+ `ALERT_METHOD_CD` VARCHAR(10) NOT NULL,
+ `ALERT_METHOD` VARCHAR(50) NOT NULL,
+PRIMARY KEY (`ALERT_METHOD_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_broadcast_site
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_broadcast_site` (
+ `BROADCAST_SITE_CD` VARCHAR(50) NOT NULL,
+ `BROADCAST_SITE_DESCR` VARCHAR(100) NULL DEFAULT NULL,
+PRIMARY KEY (`BROADCAST_SITE_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_call_times
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_call_times` (
+ `CALL_TIME_ID` DECIMAL(10,0) NOT NULL,
+ `CALL_TIME_AMOUNT` DECIMAL(10,0) NOT NULL,
+ `CALL_TIME_DISPLAY` VARCHAR(50) NOT NULL,
+PRIMARY KEY (`CALL_TIME_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_city
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_city` (
+ `CITY_CD` VARCHAR(2) NOT NULL,
+ `CITY` VARCHAR(100) NOT NULL,
+ `STATE_CD` VARCHAR(2) NOT NULL,
+PRIMARY KEY (`CITY_CD`, `STATE_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_country
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_country` (
+ `COUNTRY_CD` VARCHAR(3) NOT NULL,
+ `COUNTRY` VARCHAR(100) NOT NULL,
+ `FULL_NAME` VARCHAR(100) NULL DEFAULT NULL,
+ `WEBPHONE_COUNTRY_LABEL` VARCHAR(30) NULL DEFAULT NULL,
+PRIMARY KEY (`COUNTRY_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_menu_set
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_menu_set` (
+ `MENU_SET_CD` VARCHAR(10) NOT NULL,
+ `MENU_SET_NAME` VARCHAR(50) NOT NULL,
+PRIMARY KEY (`MENU_SET_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_priority
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_priority` (
+ `PRIORITY_ID` DECIMAL(11,0) NOT NULL,
+ `PRIORITY` VARCHAR(50) NOT NULL,
+ `ACTIVE_YN` CHAR(1) NOT NULL,
+ `SORT_ORDER` DECIMAL(5,0) NULL DEFAULT NULL,
+PRIMARY KEY (`PRIORITY_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_role_type
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_role_type` (
+ `ROLE_TYPE_ID` DECIMAL(11,0) NOT NULL,
+ `ROLE_TYPE` VARCHAR(50) NOT NULL,
+PRIMARY KEY (`ROLE_TYPE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_state
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_state` (
+ `STATE_CD` VARCHAR(2) NOT NULL,
+ `STATE` VARCHAR(100) NOT NULL,
+PRIMARY KEY (`STATE_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_tab_set
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_tab_set` (
+ `TAB_SET_CD` VARCHAR(30) NOT NULL,
+ `TAB_SET_NAME` VARCHAR(50) NOT NULL,
+PRIMARY KEY (`TAB_SET_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_lu_timezone
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_lu_timezone` (
+ `TIMEZONE_ID` INT(11) NOT NULL,
+ `TIMEZONE_NAME` VARCHAR(100) NOT NULL,
+ `TIMEZONE_VALUE` VARCHAR(100) NOT NULL,
+PRIMARY KEY (`TIMEZONE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_menu
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_menu` (
+ `MENU_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `LABEL` VARCHAR(100) NULL DEFAULT NULL,
+ `PARENT_ID` INT(11) NULL DEFAULT NULL,
+ `SORT_ORDER` DECIMAL(4,0) NULL DEFAULT NULL,
+ `ACTION` VARCHAR(200) NULL DEFAULT NULL,
+ `FUNCTION_CD` VARCHAR(30) NULL DEFAULT NULL,
+ `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
+ `SERVLET` VARCHAR(50) NULL DEFAULT NULL,
+ `QUERY_STRING` VARCHAR(200) NULL DEFAULT NULL,
+ `EXTERNAL_URL` VARCHAR(200) NULL DEFAULT NULL,
+ `TARGET` VARCHAR(25) NULL DEFAULT NULL,
+ `MENU_SET_CD` VARCHAR(10) NULL DEFAULT 'APP',
+ `SEPARATOR_YN` CHAR(1) NULL DEFAULT 'N',
+ `IMAGE_SRC` VARCHAR(100) NULL DEFAULT NULL,
+PRIMARY KEY (`MENU_ID`),
+INDEX `FK_FN_MENU_REF_196_FN_MENU` (`PARENT_ID` ASC),
+INDEX `FK_FN_MENU_MENU_SET_CD` (`MENU_SET_CD` ASC),
+INDEX `FN_MENU_FUNCTION_CD` (`FUNCTION_CD` ASC),
+CONSTRAINT `FK_FN_MENU_MENU_SET_CD`
+FOREIGN KEY (`MENU_SET_CD`)
+REFERENCES `osam_core`.`fn_lu_menu_set` (`MENU_SET_CD`),
+CONSTRAINT `FK_FN_MENU_REF_196_FN_MENU`
+FOREIGN KEY (`PARENT_ID`)
+REFERENCES `osam_core`.`fn_menu` (`MENU_ID`),
+CONSTRAINT `FK_FN_MENU_REF_223_FN_FUNCT`
+FOREIGN KEY (`FUNCTION_CD`)
+REFERENCES `osam_core`.`fn_function` (`FUNCTION_CD`))
+ ENGINE = InnoDB
+ AUTO_INCREMENT = 150029
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_org
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_org` (
+ `ORG_ID` INT(11) NOT NULL,
+ `ORG_NAME` VARCHAR(50) NOT NULL,
+ `ACCESS_CD` VARCHAR(10) NULL DEFAULT NULL,
+PRIMARY KEY (`ORG_ID`),
+INDEX `FN_ORG_ACCESS_CD` (`ACCESS_CD` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_blob_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_blob_triggers` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+ `BLOB_DATA` BLOB NULL DEFAULT NULL,
+PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+INDEX `SCHED_NAME` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC),
+CONSTRAINT `fn_qz_blob_triggers_ibfk_1`
+FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+REFERENCES `osam_core`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_calendars
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_calendars` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `CALENDAR_NAME` VARCHAR(200) NOT NULL,
+ `CALENDAR` BLOB NOT NULL,
+PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_cron_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_cron_triggers` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+ `CRON_EXPRESSION` VARCHAR(120) NOT NULL,
+ `TIME_ZONE_ID` VARCHAR(80) NULL DEFAULT NULL,
+PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+CONSTRAINT `fn_qz_cron_triggers_ibfk_1`
+FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+REFERENCES `osam_core`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_fired_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_fired_triggers` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `ENTRY_ID` VARCHAR(95) NOT NULL,
+ `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+ `INSTANCE_NAME` VARCHAR(200) NOT NULL,
+ `FIRED_TIME` BIGINT(13) NOT NULL,
+ `SCHED_TIME` BIGINT(13) NOT NULL,
+ `PRIORITY` INT(11) NOT NULL,
+ `STATE` VARCHAR(16) NOT NULL,
+ `JOB_NAME` VARCHAR(200) NULL DEFAULT NULL,
+ `JOB_GROUP` VARCHAR(200) NULL DEFAULT NULL,
+ `IS_NONCONCURRENT` VARCHAR(1) NULL DEFAULT NULL,
+ `REQUESTS_RECOVERY` VARCHAR(1) NULL DEFAULT NULL,
+PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`),
+INDEX `IDX_FN_QZ_FT_TRIG_INST_NAME` (`SCHED_NAME` ASC, `INSTANCE_NAME` ASC),
+INDEX `IDX_FN_QZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME` ASC, `INSTANCE_NAME` ASC, `REQUESTS_RECOVERY` ASC),
+INDEX `IDX_FN_QZ_FT_J_G` (`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC),
+INDEX `IDX_FN_QZ_FT_JG` (`SCHED_NAME` ASC, `JOB_GROUP` ASC),
+INDEX `IDX_FN_QZ_FT_T_G` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC),
+INDEX `IDX_FN_QZ_FT_TG` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_job_details
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_job_details` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `JOB_NAME` VARCHAR(200) NOT NULL,
+ `JOB_GROUP` VARCHAR(200) NOT NULL,
+ `DESCRIPTION` VARCHAR(250) NULL DEFAULT NULL,
+ `JOB_CLASS_NAME` VARCHAR(250) NOT NULL,
+ `IS_DURABLE` VARCHAR(1) NOT NULL,
+ `IS_NONCONCURRENT` VARCHAR(1) NOT NULL,
+ `IS_UPDATE_DATA` VARCHAR(1) NOT NULL,
+ `REQUESTS_RECOVERY` VARCHAR(1) NOT NULL,
+ `JOB_DATA` BLOB NULL DEFAULT NULL,
+PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`),
+INDEX `IDX_FN_QZ_J_REQ_RECOVERY` (`SCHED_NAME` ASC, `REQUESTS_RECOVERY` ASC),
+INDEX `IDX_FN_QZ_J_GRP` (`SCHED_NAME` ASC, `JOB_GROUP` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_locks
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_locks` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `LOCK_NAME` VARCHAR(40) NOT NULL,
+PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_paused_trigger_grps
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_paused_trigger_grps` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_scheduler_state
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_scheduler_state` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `INSTANCE_NAME` VARCHAR(200) NOT NULL,
+ `LAST_CHECKIN_TIME` BIGINT(13) NOT NULL,
+ `CHECKIN_INTERVAL` BIGINT(13) NOT NULL,
+PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_simple_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_simple_triggers` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+ `REPEAT_COUNT` BIGINT(7) NOT NULL,
+ `REPEAT_INTERVAL` BIGINT(12) NOT NULL,
+ `TIMES_TRIGGERED` BIGINT(10) NOT NULL,
+PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+CONSTRAINT `fn_qz_simple_triggers_ibfk_1`
+FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+REFERENCES `osam_core`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_simprop_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_simprop_triggers` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+ `STR_PROP_1` VARCHAR(512) NULL DEFAULT NULL,
+ `STR_PROP_2` VARCHAR(512) NULL DEFAULT NULL,
+ `STR_PROP_3` VARCHAR(512) NULL DEFAULT NULL,
+ `INT_PROP_1` INT(11) NULL DEFAULT NULL,
+ `INT_PROP_2` INT(11) NULL DEFAULT NULL,
+ `LONG_PROP_1` BIGINT(20) NULL DEFAULT NULL,
+ `LONG_PROP_2` BIGINT(20) NULL DEFAULT NULL,
+ `DEC_PROP_1` DECIMAL(13,4) NULL DEFAULT NULL,
+ `DEC_PROP_2` DECIMAL(13,4) NULL DEFAULT NULL,
+ `BOOL_PROP_1` VARCHAR(1) NULL DEFAULT NULL,
+ `BOOL_PROP_2` VARCHAR(1) NULL DEFAULT NULL,
+PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+CONSTRAINT `fn_qz_simprop_triggers_ibfk_1`
+FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+REFERENCES `osam_core`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_qz_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_qz_triggers` (
+ `SCHED_NAME` VARCHAR(120) NOT NULL,
+ `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+ `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+ `JOB_NAME` VARCHAR(200) NOT NULL,
+ `JOB_GROUP` VARCHAR(200) NOT NULL,
+ `DESCRIPTION` VARCHAR(250) NULL DEFAULT NULL,
+ `NEXT_FIRE_TIME` BIGINT(13) NULL DEFAULT NULL,
+ `PREV_FIRE_TIME` BIGINT(13) NULL DEFAULT NULL,
+ `PRIORITY` INT(11) NULL DEFAULT NULL,
+ `TRIGGER_STATE` VARCHAR(16) NOT NULL,
+ `TRIGGER_TYPE` VARCHAR(8) NOT NULL,
+ `START_TIME` BIGINT(13) NOT NULL,
+ `END_TIME` BIGINT(13) NULL DEFAULT NULL,
+ `CALENDAR_NAME` VARCHAR(200) NULL DEFAULT NULL,
+ `MISFIRE_INSTR` SMALLINT(2) NULL DEFAULT NULL,
+ `JOB_DATA` BLOB NULL DEFAULT NULL,
+PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+INDEX `IDX_FN_QZ_T_J` (`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC),
+INDEX `IDX_FN_QZ_T_JG` (`SCHED_NAME` ASC, `JOB_GROUP` ASC),
+INDEX `IDX_FN_QZ_T_C` (`SCHED_NAME` ASC, `CALENDAR_NAME` ASC),
+INDEX `IDX_FN_QZ_T_G` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC),
+INDEX `IDX_FN_QZ_T_STATE` (`SCHED_NAME` ASC, `TRIGGER_STATE` ASC),
+INDEX `IDX_FN_QZ_T_N_STATE` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
+INDEX `IDX_FN_QZ_T_N_G_STATE` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
+INDEX `IDX_FN_QZ_T_NEXT_FIRE_TIME` (`SCHED_NAME` ASC, `NEXT_FIRE_TIME` ASC),
+INDEX `IDX_FN_QZ_T_NFT_ST` (`SCHED_NAME` ASC, `TRIGGER_STATE` ASC, `NEXT_FIRE_TIME` ASC),
+INDEX `IDX_FN_QZ_T_NFT_MISFIRE` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC),
+INDEX `IDX_FN_QZ_T_NFT_ST_MISFIRE` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_STATE` ASC),
+INDEX `IDX_FN_QZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
+CONSTRAINT `fn_qz_triggers_ibfk_1`
+FOREIGN KEY (`SCHED_NAME` , `JOB_NAME` , `JOB_GROUP`)
+REFERENCES `osam_core`.`fn_qz_job_details` (`SCHED_NAME` , `JOB_NAME` , `JOB_GROUP`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_restricted_url
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_restricted_url` (
+ `RESTRICTED_URL` VARCHAR(250) NOT NULL,
+ `FUNCTION_CD` VARCHAR(30) NOT NULL,
+PRIMARY KEY (`RESTRICTED_URL`, `FUNCTION_CD`),
+INDEX `FK_RESTRICTED_URL_FUNCTION_CD` (`FUNCTION_CD` ASC),
+CONSTRAINT `FK_RESTRICTED_URL_FUNCTION_CD`
+FOREIGN KEY (`FUNCTION_CD`)
+REFERENCES `osam_core`.`fn_function` (`FUNCTION_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_role` (
+ `ROLE_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `ROLE_NAME` VARCHAR(255) NOT NULL,
+ `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
+ `PRIORITY` DECIMAL(4,0) NULL DEFAULT NULL,
+PRIMARY KEY (`ROLE_ID`))
+ ENGINE = InnoDB
+ AUTO_INCREMENT = 17
+DEFAULT CHARACTER SET = utf8;
+
+ALTER TABLE `osam_core`.`fn_role` MODIFY `ROLE_NAME` VARCHAR (255);
+
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_role_composite
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_role_composite` (
+ `PARENT_ROLE_ID` INT(11) NOT NULL,
+ `CHILD_ROLE_ID` INT(11) NOT NULL,
+PRIMARY KEY (`PARENT_ROLE_ID`, `CHILD_ROLE_ID`),
+INDEX `FK_FN_ROLE_COMPOSITE_CHILD` (`CHILD_ROLE_ID` ASC),
+CONSTRAINT `FK_FN_ROLE_COMPOSITE_CHILD`
+FOREIGN KEY (`CHILD_ROLE_ID`)
+REFERENCES `osam_core`.`fn_role` (`ROLE_ID`),
+CONSTRAINT `FK_FN_ROLE_COMPOSITE_PARENT`
+FOREIGN KEY (`PARENT_ROLE_ID`)
+REFERENCES `osam_core`.`fn_role` (`ROLE_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_role_function
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_role_function` (
+ `ROLE_ID` INT(11) NOT NULL,
+ `FUNCTION_CD` VARCHAR(30) NOT NULL,
+PRIMARY KEY (`ROLE_ID`, `FUNCTION_CD`),
+INDEX `FN_ROLE_FUNCTION_FUNCTION_CD` (`FUNCTION_CD` ASC),
+INDEX `FN_ROLE_FUNCTION_ROLE_ID` (`ROLE_ID` ASC),
+CONSTRAINT `FK_FN_ROLE__REF_198_FN_ROLE`
+FOREIGN KEY (`ROLE_ID`)
+REFERENCES `osam_core`.`fn_role` (`ROLE_ID`),
+CONSTRAINT `FK_FN_ROLE__REF_201_FN_FUNCT`
+FOREIGN KEY (`FUNCTION_CD`)
+REFERENCES `osam_core`.`fn_function` (`FUNCTION_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_schedule_workflows
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_schedule_workflows` (
+ `id_schedule_workflows` BIGINT(25) NOT NULL AUTO_INCREMENT,
+ `workflow_server_url` VARCHAR(45) NULL DEFAULT NULL,
+ `workflow_key` VARCHAR(45) NOT NULL,
+ `workflow_arguments` VARCHAR(45) NULL DEFAULT NULL,
+ `startDateTimeCron` VARCHAR(45) NULL DEFAULT NULL,
+ `endDateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `start_date_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `recurrence` VARCHAR(45) NULL DEFAULT NULL,
+PRIMARY KEY (`id_schedule_workflows`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_tab
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_tab` (
+ `TAB_CD` VARCHAR(30) NOT NULL,
+ `TAB_NAME` VARCHAR(50) NOT NULL,
+ `TAB_DESCR` VARCHAR(100) NULL DEFAULT NULL,
+ `ACTION` VARCHAR(100) NOT NULL,
+ `FUNCTION_CD` VARCHAR(30) NOT NULL,
+ `ACTIVE_YN` CHAR(1) NOT NULL,
+ `SORT_ORDER` DECIMAL(11,0) NOT NULL,
+ `PARENT_TAB_CD` VARCHAR(30) NULL DEFAULT NULL,
+ `TAB_SET_CD` VARCHAR(30) NULL DEFAULT NULL,
+PRIMARY KEY (`TAB_CD`),
+INDEX `FK_FN_TAB_FUNCTION_CD` (`FUNCTION_CD` ASC),
+INDEX `FK_FN_TAB_SET_CD` (`TAB_SET_CD` ASC),
+CONSTRAINT `FK_FN_TAB_FUNCTION_CD`
+FOREIGN KEY (`FUNCTION_CD`)
+REFERENCES `osam_core`.`fn_function` (`FUNCTION_CD`),
+CONSTRAINT `FK_FN_TAB_SET_CD`
+FOREIGN KEY (`TAB_SET_CD`)
+REFERENCES `osam_core`.`fn_lu_tab_set` (`TAB_SET_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_tab_selected
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_tab_selected` (
+ `SELECTED_TAB_CD` VARCHAR(30) NOT NULL,
+ `TAB_URI` VARCHAR(40) NOT NULL,
+PRIMARY KEY (`SELECTED_TAB_CD`, `TAB_URI`),
+CONSTRAINT `FK_FN_TAB_SELECTED_TAB_CD`
+FOREIGN KEY (`SELECTED_TAB_CD`)
+REFERENCES `osam_core`.`fn_tab` (`TAB_CD`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_user
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_user` (
+ `USER_ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `ORG_ID` INT(11) NULL DEFAULT NULL,
+ `MANAGER_ID` INT(11) NULL DEFAULT NULL,
+ `FIRST_NAME` VARCHAR(50) NULL DEFAULT NULL,
+ `MIDDLE_NAME` VARCHAR(50) NULL DEFAULT NULL,
+ `LAST_NAME` VARCHAR(50) NULL DEFAULT NULL,
+ `PHONE` VARCHAR(25) NULL DEFAULT NULL,
+ `FAX` VARCHAR(25) NULL DEFAULT NULL,
+ `CELLULAR` VARCHAR(25) NULL DEFAULT NULL,
+ `EMAIL` VARCHAR(50) NULL DEFAULT NULL,
+ `ADDRESS_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+ `ALERT_METHOD_CD` VARCHAR(10) NULL DEFAULT NULL,
+ `HRID` VARCHAR(20) NULL DEFAULT NULL,
+ `ORG_USER_ID` VARCHAR(20) NULL DEFAULT NULL,
+ `ORG_CODE` VARCHAR(30) NULL DEFAULT NULL,
+ `LOGIN_ID` VARCHAR(25) NULL DEFAULT NULL,
+ `LOGIN_PWD` VARCHAR(25) NULL DEFAULT NULL,
+ `LAST_LOGIN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
+ `CREATED_ID` INT(11) NULL DEFAULT NULL,
+ `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFIED_ID` INT(11) NULL DEFAULT NULL,
+ `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `IS_INTERNAL_YN` CHAR(1) NOT NULL DEFAULT 'N',
+ `ADDRESS_LINE_1` VARCHAR(100) NULL DEFAULT NULL,
+ `ADDRESS_LINE_2` VARCHAR(100) NULL DEFAULT NULL,
+ `CITY` VARCHAR(50) NULL DEFAULT NULL,
+ `STATE_CD` VARCHAR(3) NULL DEFAULT NULL,
+ `ZIP_CODE` VARCHAR(11) NULL DEFAULT NULL,
+ `COUNTRY_CD` VARCHAR(3) NULL DEFAULT NULL,
+ `LOCATION_CLLI` VARCHAR(8) NULL DEFAULT NULL,
+ `ORG_MANAGER_USERID` VARCHAR(20) NULL DEFAULT NULL,
+ `COMPANY` VARCHAR(100) NULL DEFAULT NULL,
+ `DEPARTMENT_NAME` VARCHAR(100) NULL DEFAULT NULL,
+ `JOB_TITLE` VARCHAR(100) NULL DEFAULT NULL,
+ `TIMEZONE` INT(11) NULL DEFAULT NULL,
+ `DEPARTMENT` VARCHAR(25) NULL DEFAULT NULL,
+ `BUSINESS_UNIT` VARCHAR(25) NULL DEFAULT NULL,
+ `BUSINESS_UNIT_NAME` VARCHAR(100) NULL DEFAULT NULL,
+ `COST_CENTER` VARCHAR(25) NULL DEFAULT NULL,
+ `FIN_LOC_CODE` VARCHAR(10) NULL DEFAULT NULL,
+ `SILO_STATUS` VARCHAR(10) NULL DEFAULT NULL,
+PRIMARY KEY (`USER_ID`),
+UNIQUE INDEX `FN_USER_HRID` (`HRID` ASC),
+UNIQUE INDEX `FN_USER_LOGIN_ID` (`LOGIN_ID` ASC),
+INDEX `FN_USER_ADDRESS_ID` (`ADDRESS_ID` ASC),
+INDEX `FN_USER_ALERT_METHOD_CD` (`ALERT_METHOD_CD` ASC),
+INDEX `FN_USER_ORG_ID` (`ORG_ID` ASC),
+INDEX `FK_FN_USER_REF_197_FN_USER` (`MANAGER_ID` ASC),
+INDEX `FK_FN_USER_REF_198_FN_USER` (`CREATED_ID` ASC),
+INDEX `FK_FN_USER_REF_199_FN_USER` (`MODIFIED_ID` ASC),
+INDEX `FK_TIMEZONE` (`TIMEZONE` ASC),
+CONSTRAINT `FK_FN_USER_REF_110_FN_ORG`
+FOREIGN KEY (`ORG_ID`)
+REFERENCES `osam_core`.`fn_org` (`ORG_ID`),
+CONSTRAINT `FK_FN_USER_REF_123_FN_LU_AL`
+FOREIGN KEY (`ALERT_METHOD_CD`)
+REFERENCES `osam_core`.`fn_lu_alert_method` (`ALERT_METHOD_CD`),
+CONSTRAINT `FK_FN_USER_REF_197_FN_USER`
+FOREIGN KEY (`MANAGER_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`),
+CONSTRAINT `FK_FN_USER_REF_198_FN_USER`
+FOREIGN KEY (`CREATED_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`),
+CONSTRAINT `FK_FN_USER_REF_199_FN_USER`
+FOREIGN KEY (`MODIFIED_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`),
+CONSTRAINT `FK_TIMEZONE`
+FOREIGN KEY (`TIMEZONE`)
+REFERENCES `osam_core`.`fn_lu_timezone` (`TIMEZONE_ID`))
+ ENGINE = InnoDB
+ AUTO_INCREMENT = 3
+DEFAULT CHARACTER SET = utf8;
+
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_user_pseudo_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_user_pseudo_role` (
+ `PSEUDO_ROLE_ID` INT(11) NOT NULL,
+ `USER_ID` INT(11) NOT NULL,
+PRIMARY KEY (`PSEUDO_ROLE_ID`, `USER_ID`),
+INDEX `FK_PSEUDO_ROLE_USER_ID` (`USER_ID` ASC),
+CONSTRAINT `FK_PSEUDO_ROLE_PSEUDO_ROLE_ID`
+FOREIGN KEY (`PSEUDO_ROLE_ID`)
+REFERENCES `osam_core`.`fn_role` (`ROLE_ID`),
+CONSTRAINT `FK_PSEUDO_ROLE_USER_ID`
+FOREIGN KEY (`USER_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_user_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_user_role` (
+ `USER_ID` INT(10) NOT NULL,
+ `ROLE_ID` INT(10) NOT NULL,
+ `PRIORITY` DECIMAL(4,0) NULL DEFAULT NULL,
+ `APP_ID` INT(11) NOT NULL DEFAULT '1',
+PRIMARY KEY (`USER_ID`, `ROLE_ID`, `APP_ID`),
+INDEX `FN_USER_ROLE_ROLE_ID` (`ROLE_ID` ASC),
+INDEX `FN_USER_ROLE_USER_ID` (`USER_ID` ASC),
+INDEX `FK_FN_USER__REF_178_FN_APP_idx` (`APP_ID` ASC),
+CONSTRAINT `FK_FN_USER__REF_172_FN_USER`
+FOREIGN KEY (`USER_ID`)
+REFERENCES `osam_core`.`fn_user` (`USER_ID`),
+CONSTRAINT `FK_FN_USER__REF_175_FN_ROLE`
+FOREIGN KEY (`ROLE_ID`)
+REFERENCES `osam_core`.`fn_role` (`ROLE_ID`),
+CONSTRAINT `FK_FN_USER__REF_178_FN_APP`
+FOREIGN KEY (`APP_ID`)
+REFERENCES `osam_core`.`fn_app` (`APP_ID`))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_workflow
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_workflow` (
+ `id` MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
+ `name` VARCHAR(20) NOT NULL,
+ `description` VARCHAR(500) NULL DEFAULT NULL,
+ `run_link` VARCHAR(300) NULL DEFAULT NULL,
+ `suspend_link` VARCHAR(300) NULL DEFAULT NULL,
+ `modified_link` VARCHAR(300) NULL DEFAULT NULL,
+ `active_yn` VARCHAR(300) NULL DEFAULT NULL,
+ `created` VARCHAR(300) NULL DEFAULT NULL,
+ `created_by` INT(11) NULL DEFAULT NULL,
+ `modified` VARCHAR(300) NULL DEFAULT NULL,
+ `modified_by` INT(11) NULL DEFAULT NULL,
+ `workflow_key` VARCHAR(50) NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+UNIQUE INDEX `name` (`name` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.fn_xmltype
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`fn_xmltype` (
+ `ID` DECIMAL(10,0) NOT NULL,
+ `XML_DOCUMENT` TEXT NULL DEFAULT NULL,
+UNIQUE INDEX `FN_XMLTYPE_ID` (`ID` ASC))
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table osam_core.schema_info
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `osam_core`.`schema_info` (
+ `SCHEMA_ID` VARCHAR(25) NOT NULL,
+ `SCHEMA_DESC` VARCHAR(75) NOT NULL,
+ `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
+ `CONNECTION_URL` VARCHAR(200) NOT NULL,
+ `USER_NAME` VARCHAR(45) NOT NULL,
+ `PASSWORD` VARCHAR(45) NULL DEFAULT NULL,
+ `DRIVER_CLASS` VARCHAR(100) NOT NULL,
+ `MIN_POOL_SIZE` INT(11) NOT NULL,
+ `MAX_POOL_SIZE` INT(11) NOT NULL,
+ `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL)
+ ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+-- ----------------------------------------------------------------------------
+-- Table osam_core.osam_core_job
+-- ----------------------------------------------------------------------------
+
+CREATE TABLE IF NOT EXISTS `osam_core`.`osam_core_job` (
+ `JOB_ID` BINARY(16) NOT NULL PRIMARY KEY,
+ `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `JOB_STATUS` VARCHAR(50) NULL COLLATE 'utf8_bin',
+ `JOB_TYPE` VARCHAR(50) NULL COLLATE 'utf8_bin',
+ `JOB_DATA` MEDIUMTEXT NULL COLLATE 'utf8_bin',
+ `PARENT_JOB_ID` BINARY(16) NULL,
+ `TAKEN_BY` VARCHAR(100) NULL COLLATE 'utf8_bin',
+CONSTRAINT `FK_OWNING_VID_JOB_PARENT` FOREIGN KEY (`PARENT_JOB_ID`) REFERENCES `osam_core`.`vid_job` (`JOB_ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+-- ----------------------------------------------------------------------------
+-- View osam_core.v_url_access
+-- ----------------------------------------------------------------------------
+CREATE OR REPLACE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `v_url_access` AS select distinct `m`.`ACTION` AS `URL`,`m`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_menu` `m` where (`m`.`ACTION` is not null) union select distinct `t`.`ACTION` AS `URL`,`t`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_tab` `t` where (`t`.`ACTION` is not null) union select `r`.`RESTRICTED_URL` AS `URL`,`r`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_restricted_url` `r`;
+SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
diff --git a/onap-enabler-infra/src/main/resources/portal.properties b/onap-enabler-infra/src/main/resources/portal.properties
new file mode 100644
index 0000000..104e85d
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/portal.properties
@@ -0,0 +1,85 @@
+###
+# ============LICENSE_START==========================================
+# ONAP Portal SDK
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the License);
+# you may not use this software 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.
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the License);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# 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============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+###
+# Properties read by ECOMP Framework library, ecompFW.jar
+
+##########################################################################
+# The following properties should NOT be changed by partner applications.
+##########################################################################
+
+portal.api.prefix = /api
+max.idle.time = 5
+user.attribute.name = user_attribute
+
+#Use REST API instead of UEB to fetch the functional menu data
+use_rest_for_functional_menu=true
+
+##########################################################################
+# The following properties MUST be changed by partner applications.
+##########################################################################
+
+# Name of java class that implements the OnBoardingApiService interface.
+portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl
+
+# Log On for single sign on
+ecomp_redirect_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
+
+# URL of the ECOMP Portal REST API
+ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi
+
+# Applications do not need to run a UEB listener after 1607.
+ueb_listeners_enable = false
+
+# UEB Configuration
+# In release 1607, all 6 entries below were required.
+# In release 1610, if key ueb_listeners_enable is set to false,
+# then only the ueb_app_key is required.
+# UEB servers
+#ueb_url_list = todo_ueb_url_list
+# ECOMP Portal listens on this UEB topic
+#ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX-DEV-LOCAL
+
+# Replace these 3 default values with the ones for your specific App,
+# as shown on the on-boarding page on the ECOMP Portal web application.
+ueb_app_key = oVGikIIFjzjUNtph
+ueb_app_secret = 8xJNPcgKJJgHhfbth6C1yN3e
+ueb_app_mailbox_name = ECOMP-PORTAL-OUTBOX-TEST-77621
+# 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 = {UUID}
+
+#decryption_key = AGLDdG4D04BKm2IxIWEr8o==
diff --git a/onap-enabler-infra/src/main/resources/portal_template.properties b/onap-enabler-infra/src/main/resources/portal_template.properties
new file mode 100644
index 0000000..d01413a
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/portal_template.properties
@@ -0,0 +1,32 @@
+# 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}
+
+# 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/onap-enabler-infra/src/main/resources/sampleTosca.csar b/onap-enabler-infra/src/main/resources/sampleTosca.csar
new file mode 100644
index 0000000..7532f58
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/sampleTosca.csar
Binary files differ
diff --git a/onap-enabler-infra/src/main/resources/server.xml b/onap-enabler-infra/src/main/resources/server.xml
new file mode 100644
index 0000000..d9dc27a
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/server.xml
@@ -0,0 +1,186 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+ 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.
+-->
+<!-- Note: A "Server" is not itself a "Container", so you may not
+ define subcomponents such as "Valves" at this level.
+ Documentation at /docs/config/server.html
+ -->
+<Server port="8005" shutdown="SHUTDOWN">
+ <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
+ <!-- Security listener. Documentation at /docs/config/listeners.html
+ <Listener className="org.apache.catalina.security.SecurityListener" />
+ -->
+ <!--APR library loader. Documentation at /docs/apr.html -->
+ <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+ <!-- Prevent memory leaks due to use of particular java/javax APIs-->
+ <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
+ <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+ <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
+
+ <!-- Global JNDI resources
+ Documentation at /docs/jndi-resources-howto.html
+ -->
+ <GlobalNamingResources>
+ <!-- Editable user database that can also be used by
+ UserDatabaseRealm to authenticate users
+ -->
+ <Resource name="UserDatabase" auth="Container"
+ type="org.apache.catalina.UserDatabase"
+ description="User database that can be updated and saved"
+ factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+ pathname="conf/tomcat-users.xml" />
+ </GlobalNamingResources>
+
+ <!-- A "Service" is a collection of one or more "Connectors" that share
+ a single "Container" Note: A "Service" is not itself a "Container",
+ so you may not define subcomponents such as "Valves" at this level.
+ Documentation at /docs/config/service.html
+ -->
+ <Service name="Catalina">
+
+ <!--The connectors can use a shared executor, you can define one or more named thread pools-->
+ <!--
+ <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
+ maxThreads="150" minSpareThreads="4"/>
+ -->
+
+
+ <!-- A "Connector" represents an endpoint by which requests are received
+ and responses are returned. Documentation at :
+ Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
+ Java AJP Connector: /docs/config/ajp.html
+ APR (HTTP/AJP) Connector: /docs/apr.html
+ Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
+ -->
+ <Connector port="8080" protocol="HTTP/1.1"
+ connectionTimeout="20000"
+ redirectPort="8443" />
+ <!-- A "Connector" using the shared thread pool-->
+ <!--
+ <Connector executor="tomcatThreadPool"
+ port="8080" protocol="HTTP/1.1"
+ connectionTimeout="20000"
+ redirectPort="8443" />
+ -->
+ <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
+ This connector uses the NIO implementation that requires the JSSE
+ style configuration. When using the APR/native implementation, the
+ OpenSSL style configuration is required as described in the APR/native
+ documentation -->
+
+ <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
+ maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
+ clientAuth="false" sslProtocol="TLS" keyAlias="${osam.keyalias}"
+ keystoreFile="${osam.keystore.filename}" keystorePass="${osam.keystore.password}"
+ useServerCipherSuitesOrder="true"
+ ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
+ TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
+ TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
+ TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
+ TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
+ TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+ TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+ TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
+ TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
+ TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
+ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
+ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
+ TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
+ TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
+ TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
+ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+ TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
+ TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
+ TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
+ TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
+ TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
+ TLS_ECDH_RSA_WITH_RC4_128_SHA,
+ TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
+ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+ TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
+ TLS_RSA_WITH_AES_256_GCM_SHA384,
+ TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
+ TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
+ TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,
+ TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+ TLS_RSA_WITH_AES_128_GCM_SHA256,
+ TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
+ TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
+ TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,
+ TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
+ TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
+ TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
+ TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
+ TLS_EMPTY_RENEGOTIATION_INFO_SCSVF"
+ />
+
+
+ <!-- Define an AJP 1.3 Connector on port 8009 -->
+ <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
+
+
+ <!-- An Engine represents the entry point (within Catalina) that processes
+ every request. The Engine implementation for Tomcat stand alone
+ analyzes the HTTP headers included with the request, and passes them
+ on to the appropriate Host (virtual host).
+ Documentation at /docs/config/engine.html -->
+
+ <!-- You should set jvmRoute to support load-balancing via AJP ie :
+ <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
+ -->
+ <Engine name="Catalina" defaultHost="localhost">
+
+ <!--For clustering, please take a look at documentation at:
+ /docs/cluster-howto.html (simple how to)
+ /docs/config/cluster.html (reference documentation) -->
+ <!--
+ <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
+ -->
+
+ <!-- Use the LockOutRealm to prevent attempts to guess user passwords
+ via a brute-force attack -->
+ <Realm className="org.apache.catalina.realm.LockOutRealm">
+ <!-- This Realm uses the UserDatabase configured in the global JNDI
+ resources under the key "UserDatabase". Any edits
+ that are performed against this UserDatabase are immediately
+ available for use by the Realm. -->
+ <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+ resourceName="UserDatabase"/>
+ </Realm>
+
+ <Host name="localhost" appBase="webapps"
+ unpackWARs="true" autoDeploy="true">
+
+ <!-- SingleSignOn valve, share authentication between web applications
+ Documentation at: /docs/config/valve.html -->
+ <!--
+ <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+ -->
+
+ <!-- Access log processes all example.
+ Documentation at: /docs/config/valve.html
+ Note: The pattern used is equivalent to using pattern="common" -->
+ <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+ prefix="localhost_access_log" suffix=".txt"
+ pattern="%h %l %u %t "%r" %s %b" />
+
+ </Host>
+ </Engine>
+ </Service>
+</Server>
+
diff --git a/onap-enabler-infra/src/main/resources/state-rules.drl b/onap-enabler-infra/src/main/resources/state-rules.drl
new file mode 100644
index 0000000..bf92f11
--- /dev/null
+++ b/onap-enabler-infra/src/main/resources/state-rules.drl
@@ -0,0 +1,58 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OSAM Core
+ * ================================================================================
+ * Copyright (C) 2018 AT&T
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.onap.portalsdk.core.drools;
+global String age
+
+rule "Default"
+when
+$droolsRuleService : DroolsRuleServiceImpl( state != null )
+then
+System.out.println($droolsRuleService.accessLabel() +" "+ $droolsRuleService.getState() +" state legal age is " + getDefaultIfNull(age));
+$droolsRuleService.setResultsString($droolsRuleService.getState()+" state legal age is " + getDefaultIfNull(age));
+end
+
+rule "Drools NJ"
+when
+$droolsRuleService : DroolsRuleServiceImpl( state == "NJ" )
+then
+System.out.println($droolsRuleService.accessLabel() +" "+ "NJ state legal age is " + getDefaultIfNull(age));
+$droolsRuleService.setResultsString("NJ state legal age is " + getDefaultIfNull(age));
+end
+
+rule "Drools KY"
+when
+$droolsRuleService : DroolsRuleServiceImpl( state == "KY" )
+then
+System.out.println($droolsRuleService.accessLabel() +" "+ "KY state legal age is " + getDefaultIfNull("20"));
+$droolsRuleService.setResultsString("KY state legal age is " + getDefaultIfNull("20"));
+end
+
+rule "Drools NY"
+when
+$droolsRuleService : DroolsRuleServiceImpl( state == "NY" )
+then
+System.out.println($droolsRuleService.accessLabel() +" "+ "NY state legal age is " + getDefaultIfNull("21"));
+$droolsRuleService.setResultsString("NY state legal age is " + getDefaultIfNull("21"));
+end
+
+function String getDefaultIfNull(String age) {
+return age == null ? "18" : age;
+}