Merge "Add Nested JSON Filtering"
diff --git a/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties b/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties
index fec8094..03a5d71 100644
--- a/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties
+++ b/feature-active-standby-management/src/main/feature/config/feature-active-standby-management.properties
@@ -2,7 +2,7 @@
 # ============LICENSE_START=======================================================
 # feature-active-standby-management
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017, 2019 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.
@@ -20,9 +20,9 @@
 
 # DB properties
 javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver
-javax.persistence.jdbc.url=jdbc:mariadb://${{SQL_HOST}}:3306/activestandbymanagement
-javax.persistence.jdbc.user=${{SQL_USER}}
-javax.persistence.jdbc.password=${{SQL_PASSWORD}}
+javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/activestandbymanagement
+javax.persistence.jdbc.user=${env:SQL_USER}
+javax.persistence.jdbc.password=${env:SQL_PASSWORD}
 
 # Must be unique across the system
 resource.name=pdp1
diff --git a/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties b/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties
index 33e2d78..c609c8f 100644
--- a/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties
+++ b/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties
@@ -2,7 +2,7 @@
 # ============LICENSE_START=======================================================
  # feature-distributed-locking
 # ================================================================================
-# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2018-2019 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.
@@ -20,6 +20,6 @@
 
 #Database properties
 javax.persistence.jdbc.driver= org.mariadb.jdbc.Driver
-javax.persistence.jdbc.url=jdbc:mariadb://${{SQL_HOST}}:3306/pooling
-javax.persistence.jdbc.user=${{SQL_USER}}
-javax.persistence.jdbc.password=${{SQL_PASSWORD}}
+javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/pooling
+javax.persistence.jdbc.user=${env:SQL_USER}
+javax.persistence.jdbc.password=${env:SQL_PASSWORD}
diff --git a/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties b/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties
index 4d988a2..ac6ba0a 100644
--- a/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties
+++ b/feature-healthcheck/src/main/feature/config/feature-healthcheck.properties
@@ -24,28 +24,28 @@
 http.server.services.HEALTHCHECK.restClasses=org.onap.policy.drools.healthcheck.RestHealthCheck
 http.server.services.HEALTHCHECK.managed=false
 http.server.services.HEALTHCHECK.swagger=true
-http.server.services.HEALTHCHECK.userName=${{HEALTHCHECK_USER}}
-http.server.services.HEALTHCHECK.password=${{HEALTHCHECK_PASSWORD}}
+http.server.services.HEALTHCHECK.userName=${env:HEALTHCHECK_USER}
+http.server.services.HEALTHCHECK.password=${env:HEALTHCHECK_PASSWORD}
 http.server.services.HEALTHCHECK.https=true
-http.server.services.HEALTHCHECK.aaf=${{AAF}}
+http.server.services.HEALTHCHECK.aaf=${env:AAF}
 http.server.services.HEALTHCHECK.serialization.provider=org.onap.policy.common.gson.JacksonHandler
 
 http.client.services=PAP,PDP
 
-http.client.services.PAP.host=${{PAP_HOST}}
+http.client.services.PAP.host=${env:PAP_HOST}
 http.client.services.PAP.port=9091
 http.client.services.PAP.contextUriPath=pap/test
 http.client.services.PAP.https=true
-http.client.services.PAP.userName=${{PAP_USERNAME}}
-http.client.services.PAP.password=${{PAP_PASSWORD}}
+http.client.services.PAP.userName=${env:PAP_USERNAME}
+http.client.services.PAP.password=${env:PAP_PASSWORD}
 http.client.services.PAP.managed=true
 http.client.services.PAP.serialization.provider=org.onap.policy.common.gson.JacksonHandler
 
-http.client.services.PDP.host=${{PDP_HOST}}
+http.client.services.PDP.host=${env:PDP_HOST}
 http.client.services.PDP.port=8081
 http.client.services.PDP.contextUriPath=pdp/test
 http.client.services.PDP.https=true
-http.client.services.PDP.userName=${{PDP_USERNAME}}
-http.client.services.PDP.password=${{PDP_PASSWORD}}
+http.client.services.PDP.userName=${env:PDP_USERNAME}
+http.client.services.PDP.password=${env:PDP_PASSWORD}
 http.client.services.PDP.managed=false
 http.client.services.PDP.serialization.provider=org.onap.policy.common.gson.JacksonHandler
diff --git a/feature-pooling-dmaap/src/main/feature/config/feature-pooling-dmaap.properties b/feature-pooling-dmaap/src/main/feature/config/feature-pooling-dmaap.properties
index 9f8c804..1d54985 100644
--- a/feature-pooling-dmaap/src/main/feature/config/feature-pooling-dmaap.properties
+++ b/feature-pooling-dmaap/src/main/feature/config/feature-pooling-dmaap.properties
@@ -2,7 +2,7 @@
 # ============LICENSE_START=======================================================
 # feature-pooling-dmaap
 # ================================================================================
-# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2018-2019 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.
@@ -77,20 +77,20 @@
 # at the same time.
 
 pooling.amsterdam.enabled=true
-pooling.amsterdam.topic=${{POOLING_TOPIC}}
+pooling.amsterdam.topic=${env:POOLING_TOPIC}
 
 pooling.beijing.enabled=true
-pooling.beijing.topic=${{POOLING_TOPIC}}
+pooling.beijing.topic=${env:POOLING_TOPIC}
 
 
 # the list of sources and sinks should be identical
-ueb.source.topics=${{POOLING_TOPIC}}
-ueb.sink.topics=${{POOLING_TOPIC}}
+ueb.source.topics=${env:POOLING_TOPIC}
+ueb.sink.topics=${env:POOLING_TOPIC}
 
-ueb.source.topics.${{POOLING_TOPIC}}.servers=${{DMAAP_SERVERS}}
+ueb.source.topics.${{POOLING_TOPIC}}.servers=${env:DMAAP_SERVERS}
 ueb.source.topics.${{POOLING_TOPIC}}.apiKey=
 ueb.source.topics.${{POOLING_TOPIC}}.apiSecret=
 
-ueb.sink.topics.${{POOLING_TOPIC}}.servers=${{DMAAP_SERVERS}}
+ueb.sink.topics.${{POOLING_TOPIC}}.servers=${env:DMAAP_SERVERS}
 ueb.sink.topics.${{POOLING_TOPIC}}.apiKey=
 ueb.sink.topics.${{POOLING_TOPIC}}.apiSecret=
diff --git a/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties b/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties
index 0f15e3a..a32ce22 100644
--- a/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties
+++ b/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties
@@ -2,7 +2,7 @@
 # ============LICENSE_START=======================================================
 # feature-session-persistence
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017, 2019 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.
@@ -19,9 +19,9 @@
 ###
 
 javax.persistence.jdbc.driver= org.mariadb.jdbc.Driver
-javax.persistence.jdbc.url=jdbc:mariadb://${{SQL_HOST}}:3306/sessionpersistence
-javax.persistence.jdbc.user=${{SQL_USER}}
-javax.persistence.jdbc.password=${{SQL_PASSWORD}}
+javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/sessionpersistence
+javax.persistence.jdbc.user=${env:SQL_USER}
+javax.persistence.jdbc.password=${env:SQL_PASSWORD}
 
 #Seconds timeout - 15 minutes
 persistence.sessioninfo.timeout=900
diff --git a/feature-state-management/src/main/feature/config/feature-state-management.properties b/feature-state-management/src/main/feature/config/feature-state-management.properties
index 50d7eda..9ab53d3 100644
--- a/feature-state-management/src/main/feature/config/feature-state-management.properties
+++ b/feature-state-management/src/main/feature/config/feature-state-management.properties
@@ -20,9 +20,9 @@
 
 # DB properties
 javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver
-javax.persistence.jdbc.url=jdbc:mariadb://${{SQL_HOST}}:3306/statemanagement
-javax.persistence.jdbc.user=${{SQL_USER}}
-javax.persistence.jdbc.password=${{SQL_PASSWORD}}
+javax.persistence.jdbc.url=jdbc:mariadb://${env:SQL_HOST}:3306/statemanagement
+javax.persistence.jdbc.user=${env:SQL_USER}
+javax.persistence.jdbc.password=${env:SQL_PASSWORD}
 
 # DroolsPDPIntegrityMonitor Properties
 # Test interface host and port defaults may be overwritten here
diff --git a/packages/docker/src/main/docker/docker-install.sh b/packages/docker/src/main/docker/docker-install.sh
index 13a366a..f4c335b 100644
--- a/packages/docker/src/main/docker/docker-install.sh
+++ b/packages/docker/src/main/docker/docker-install.sh
@@ -622,9 +622,6 @@
 	fi
 
 	update_monitor $CONTROLLER_NAME
-
-	# save install configuration as an environment file
-	ln -s -f "${POLICY_HOME}/etc/profile.d/${BASE_CONF}" "${POLICY_HOME}/config/${BASE_CONF}.environment"
 }
 
 
diff --git a/policy-management/src/main/server-gen/bin/features b/policy-management/src/main/server-gen/bin/features
index 676ce38..861806a 100644
--- a/policy-management/src/main/server-gen/bin/features
+++ b/policy-management/src/main/server-gen/bin/features
@@ -4,7 +4,7 @@
 # ============LICENSE_START=======================================================
 # ONAP POLICY
 # ================================================================================
-# Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017-2019 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.
@@ -157,7 +157,6 @@
 BIN=${POLICY_HOME}/bin
 DB=${POLICY_HOME}/etc/db/migration
 FEATURES=${POLICY_HOME}/features
-PROFILED=${POLICY_HOME}/etc/profile.d
 
 if [[ ! ( -d "${LIB}" && -x "${LIB}" ) ]]; then
 	echo "error: no ${LIB} directory"
@@ -189,7 +188,6 @@
 
 UPGRADE_SQL_SUFFIX=".upgrade.sql"
 DOWNGRADE_SQL_SUFFIX=".downgrade.sql"
-ENVIRONMENT_SUFFIX=".environment"
 
 featureJars=$(find "${FEATURES}" -name "feature-*.jar" -type f -exec basename {} \; 2> /dev/null)
 
@@ -416,16 +414,7 @@
 		echo "error: not existing configuration to contact the database"
 		return 2
 	fi
-	
-	# check DB set up
-	
-	source "${POLICY_HOME}"/etc/profile.d/base.conf
-	
-	if [[ -z ${SQL_HOST} ]] || [[ -z ${SQL_USER} ]] || [[ -z ${SQL_PASSWORD} ]]; then
-		echo "error: database credentials do not exist" 
-		return 3
-	fi
-	
+
 	return 0
 }
 
@@ -471,7 +460,6 @@
 	fi
 	
 	local featureName="$1"
-	local featureInstallConf=feature-"${featureName}".conf
 	local featureConfigs featureConfigPath
 	
 	if [[ -z ${featureName} ]]; then
@@ -483,10 +471,6 @@
 	for featureConfigPath in ${featureConfigs}; do
 		ln -s -f "${featureConfigPath}" "${CONFIG}/"
 	done
-	
-	if [[ -f "${PROFILED}"/"${featureInstallConf}" ]]; then
-		ln -s -f "${PROFILED}"/"${featureInstallConf}" "${CONFIG}"/"${featureInstallConf}""${ENVIRONMENT_SUFFIX}"
-	fi
 }
 
 # ##########################################################
@@ -628,7 +612,7 @@
 
 	artifacts=$(ls "${FEATURES}"/"${featureName}"/"${FEATURE_ARTIFACTS}"/* 2> /dev/null)
 	for artifactPath in ${artifacts}; do
-	    deploy-artifact -f -a ${artifactPath}
+	    deploy-artifact -f -a "${artifactPath}"
 	done
 }
 
@@ -816,7 +800,6 @@
 	fi
 	
 	local featureName="$1"
-	local featureInstallConf=feature-"${featureName}".conf
 	local featureConfigs featureConfigPath
 	
 	if [[ -z ${featureName} ]]; then
@@ -829,8 +812,6 @@
 		configFileName=$(basename "${featureConfigPath}")
 		rm -f "${CONFIG}"/"${configFileName}" 2> /dev/null
 	done
-
-	rm -f "${CONFIG}"/"${featureInstallConf}""${ENVIRONMENT_SUFFIX}" 2> /dev/null
 }
 
 # ##########################################################
diff --git a/policy-management/src/main/server/config/policy-engine.properties b/policy-management/src/main/server/config/policy-engine.properties
index 5838915..f7ff5d7 100644
--- a/policy-management/src/main/server/config/policy-engine.properties
+++ b/policy-management/src/main/server/config/policy-engine.properties
@@ -22,35 +22,35 @@
 
 # Configuration Channel Settings: PDPD_CONFIGURATION
 
-dmaap.source.topics=${{PDPD_CONFIGURATION_TOPIC}}
-dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.servers=${{PDPD_CONFIGURATION_SERVERS}}
-dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiKey=${{PDPD_CONFIGURATION_API_KEY}}
-dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiSecret=${{PDPD_CONFIGURATION_API_SECRET}}
-dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.consumerGroup=${{PDPD_CONFIGURATION_CONSUMER_GROUP}}
-dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.consumerInstance=${{PDPD_CONFIGURATION_CONSUMER_INSTANCE}}
+dmaap.source.topics=${env:PDPD_CONFIGURATION_TOPIC}
+dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.servers=${env:PDPD_CONFIGURATION_SERVERS}
+dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiKey=${env:PDPD_CONFIGURATION_API_KEY}
+dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiSecret=${env:PDPD_CONFIGURATION_API_SECRET}
+dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.consumerGroup=${env:PDPD_CONFIGURATION_CONSUMER_GROUP}
+dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.consumerInstance=${env:PDPD_CONFIGURATION_CONSUMER_INSTANCE}
 dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.managed=false
 dmaap.source.topics.${{PDPD_CONFIGURATION_TOPIC}}.https=true
 
-dmaap.sink.topics=${{PDPD_CONFIGURATION_TOPIC}}
-dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.servers=${{PDPD_CONFIGURATION_SERVERS}}
-dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiKey=${{PDPD_CONFIGURATION_API_KEY}}
-dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiSecret=${{PDPD_CONFIGURATION_API_SECRET}}
-dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.partitionKey=${{PDPD_CONFIGURATION_PARTITION_KEY}}
+dmaap.sink.topics=${env:PDPD_CONFIGURATION_TOPIC}
+dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.servers=${env:PDPD_CONFIGURATION_SERVERS}
+dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiKey=${env:PDPD_CONFIGURATION_API_KEY}
+dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.apiSecret=${env:PDPD_CONFIGURATION_API_SECRET}
+dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.partitionKey=${env:PDPD_CONFIGURATION_PARTITION_KEY}
 dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.managed=false
 dmaap.sink.topics.${{PDPD_CONFIGURATION_TOPIC}}.https=true
 
 http.server.services=SECURED-CONFIG
 
-http.server.services.SECURED-CONFIG.host=${{TELEMETRY_HOST}}
+http.server.services.SECURED-CONFIG.host=${env:TELEMETRY_HOST}
 http.server.services.SECURED-CONFIG.port=9696
-http.server.services.SECURED-CONFIG.userName=${{TELEMETRY_USER}}
-http.server.services.SECURED-CONFIG.password=${{TELEMETRY_PASSWORD}}
+http.server.services.SECURED-CONFIG.userName=${env:TELEMETRY_USER}
+http.server.services.SECURED-CONFIG.password=${env:TELEMETRY_PASSWORD}
 http.server.services.SECURED-CONFIG.restPackages=org.onap.policy.drools.server.restful
 http.server.services.SECURED-CONFIG.managed=false
 http.server.services.SECURED-CONFIG.swagger=true
 http.server.services.SECURED-CONFIG.https=true
-http.server.services.SECURED-CONFIG.aaf=${{AAF}}
+http.server.services.SECURED-CONFIG.aaf=${env:AAF}
 http.server.services.SECURED-CONFIG.serialization.provider=org.onap.policy.common.gson.JacksonHandler
 
-aaf.namespace=${{AAF_NAMESPACE}}
-aaf.root.permission=${{AAF_NAMESPACE}}.pdpd
+aaf.namespace=${env:AAF_NAMESPACE}
+aaf.root.permission=${env:AAF_NAMESPACE}.pdpd